spring Cloud服務註冊中心eureka
Eureka是什麼?
1、Eureka是SpringCloud Netflix的核心子模組。
2、Eureka包含Eureka Server和Eureka Client。
3、Server提供註冊服務,存儲所有可用服務節點。
4、用於簡化Client與Server通訊複雜度。
eureka原理流程圖:

Eureka核心特性
一、服務註冊(Registry)
(1)Eureka Client在第一次心跳時向Eureka Server註冊
(2)註冊時會提供諸多自身元數據:主機名、埠、健康指標URL等
二、服務續約(Renew)
(1)Eureka Client通過發送心跳進行續約
(2)默認每30秒發送一次心跳
(3)如果90秒內Eureka Server未收到續約,則進行服務剔除
三、服務下線(Cancel)
(1)Eureka Client優雅退出時會發送cancel命令
(2)Eureka Server收到cancel命令時會刪除該節點
Eureka為什麼註冊慢?
Eureka註冊慢的根本原因是在於Eureka要保證AP特性
Eureka client 延遲註冊,默認30秒
Eureka server的響應快取,默認30秒
Eureka server的快取刷新,默認30秒
最極端最慢是90秒
Eureka的自我保護
Eureka server會自動更新續約更新閥值
Eureka server續約更新頻率低於閥值則進入保護模式
自我保護模式下Eureka server不會剔除任何註冊資訊
eureka環境搭建:
1、pom文件加以下maven依賴包:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-eureka-server</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
</dependencies>
2、配置文件application.yml加以下配置:
server: port: 8761 tomcat: uri-encoding: utf-8 eureka: instance: hostname: localhost # 優先使用IP地址方式進行註冊服務 prefer-ip-address: true client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:${server.port}/eureka/ spring: application: name: spring-cloud-eureka
3、EurekaApplication.java文件加註解@EnableEurekaServer
啟動項目訪問//localhost:8761/

eureka示例項目程式碼github地址//github.com/yuanzipeng/spring-cloud-eureka


