Server端
引入eureka server的maven依賴
引入依賴時無需給定eureka的版本號,maven會根據當前使用的SpringCloud版本來判斷應該引入哪個版本的euraka server依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
啟動類及yml相關配置
- 啟動類上加@EnableEurekaServer注解
- yml中配置service-url、register-with-eureka: false、enable-self-preservation: false、服務名稱、port
-
- service-url的值要配置給defaultZone屬性
- register-with-eureka: false是為了不注冊服務端本身,因為該server本身就是注冊中心的服務,注冊自身是沒有意義的(eureka高可用時例外)
- enable-self-preservation: false是為了關閉eureka的保護機制(只有在測試環境不斷重啟client的情況下才可以關閉該機制,生產環境一定要打開該機制),為了避免某些注冊到eureka server的服務不斷重啟導致在線率降低,但是還存在於eureka中(該機制原理:當某些注冊到eureka server的客戶端由於某些原因導致在線率不達標時,eureka就會警告提示,與此同時,eureka會將這些在線率低的服務當作還存活的服務,所以當某些服務真的掛掉之后,eureka上面時還會存在這些服務的url的,這是eureka的一種保護機制,為了避免調用服務的消費者能及時發現某些服務已經不可用,所以我們在實際使用中將這種機制關掉,默認是true,這里改成false)
- spring.application.name屬性配置的服務名是服務部署后訪問的名稱,例如:該服務配置的spring.application.name值為eureka,訪問時通過http://localhost:8761/eureka/訪問。同時,如果該服務注冊至eureka,則該服務在eureka中顯示的服務名稱也為eureka
eureka管理頁面上顯示已注冊的服務名稱如下圖:
eureka的server端yml配置如下:
Client端
引入eureka client的maven依賴
引入依賴時無需給定eureka的版本號,maven會根據當前使用的SpringCloud版本來判斷應該引入哪個版本的euraka server依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
啟動類及yml相關配置
- 啟動類上加@EnableDiscoveryClient注解
- yml中配置service-url、服務名稱
-
- service-url的值要配置給defaultZone屬性,這個地方配置的時eureka服務端的url,如果服務端為高可用,則可以配置多個,中間用逗號隔開
eureka的client端yml配置如下:
eureka高可用
高可用服務搭建
- 服務端起多個實例,實例與實例間兩兩互相注冊,這樣實例間就可以同步客戶端信息
eureka的高可用yml配置如下:
服務啟動時,需要啟動多個實例,並且實例間兩兩相互注冊,啟動命令如下:
通過-Dserver.port=8761指定某個實例的端口號
nohup java -Dserver.port=8761 -jar eureka-0.0.1-SNAPSHOT.jar > eureka1.log 2>&1 &