摘要
Eureka 是 Netflix 開發的,一個基於 REST 服務的,服務註冊與發現的組件。
它主要包括兩個組件:Eureka Server 和 Eureka Client
- Eureka Client:一個Java客戶端,用於簡化與 Eureka Server 的交互(通常就是微服務中的客戶端和服務端)
- Eureka Server:提供服務註冊和發現的能力(通常就是微服務中的註冊中心)
各個微服務啓動時,會通過 Eureka Client 向 Eureka Server 註冊自己,Eureka Server 會存儲該服務的信息
也就是說,每個微服務的客戶端和服務端,都會註冊到 Eureka Server,這就衍生出了微服務相互識別的話題。
上述借鑑於:https://www.cnblogs.com/knowledgesea/p/11208000.html
本文重在搭建一個簡單的eureka server 、eureka client。使用spring boot 2.0.1 + maven。
想了解更多的內容,大家可以參考其他的博客或者相應的書籍,這裏不多加贅述。
Eureka Server
pom.xml
以下是關鍵部分,spring boot 版本是 2.0
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- eureka server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
application.yml
server:
port: 8761
spring:
application:
name: registry
eureka:
client:
register-with-eureka: false
fetch-registry: false
serviceUrl:
defaultZone: http://localhost:${server.port}/eureka/
## register-with-eureka: false 和 fetch-registry: false 表明自己是一個eureka server
pom和application都配置好了後,只要在啓動類開啓 eureka server,啓動項目後就可以查看效果了。用到註解:
@EnableEurekaServer
登錄地址爲: http://localhost:8761
上面的 Instances currently registered with Eureka 下面沒有任何實例,是因爲現在還沒有eureka client。
下面介紹eureka client。
Eureka Client
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- eureka client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
application.yml
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
server:
port: 8762
spring:
application:
name: eureka-client
defaultZone : 配置的就是 eureka server 的地址,也就是你註冊中心的地址。
pom和application都配置好了後,只要在啓動類開啓 eureka client,啓動項目後就可以查看效果了。用到註解:
@EnableEurekaClient
當我們啓動了 eureka client,我們回到 eureka server頁面查看效果:
會發現剛纔我們配置的 eureka client 已經up了,也就是說我們配置的 eureka client 已經成功註冊到 eureka server中了。下一步就可以配置 ribbon、feign、zuul 進行對client的負載、路由等操作。這些可以參考我後面得博客。