目錄
一、Eureka是什麼?
Eureka是基於REST(Representational State Transfer)服務,主要以AWS雲服務爲支撐,提供服務發現並實現負載均衡和故障轉移。我們稱此服務爲Eureka服務。Eureka提供了Java客戶端組件,Eureka Client,方便與服務端的交互。客戶端內置了基於round-robin實現的簡單負載均衡。在Netflix,爲Eureka提供更爲複雜的負載均衡方案進行封裝,以實現高可用,它包括基於流量、資源利用率以及請求返回狀態的加權負載均衡。
二、構建Eureka Server
- 新建工程,選擇Spring Initializr
- 輸入GroupId,Artifact
- 選擇Cloud Discovery--Eureka Server,選擇springboot的版本
- 選擇項目存放位置,finish
- 在啓動類中添加@EnableEurekaServer註解
-
package cn.aaralyn.eureka; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); } }
application.yml中配置
# 設置端口號 server: port: 8761 eureka: client: # 該項目自身也需要註冊到eureka註冊中心,此配置可以關閉自身的註冊 register-with-eureka: false # 設置需要註冊到的地址 service-url: defaultZone: http://localhost:8761/eureka server: # 關閉自我保護,客戶端不在線,將不在服務端顯示 enable-self-preservation: false #設置應用名稱 spring: application: name: eureka-server
- 啓動項目,打開http://localhost:8761/eureka
三、構建Eureka Client
- 創建項目與創建服務項目類似,在第三步中由選擇Eureka Server改爲Eureka Discovery,其他一致
- 在啓動類中添加@EnableEurekaClient註解
package cn.aaralyn.eurekaclient; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication @EnableEurekaClient public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }
- application.yml中配置
spring: application: name: eureka-client eureka: client: service-url: defaultZone: http://localhost:8761/eureka
- 先啓動服務端,再啓動客戶端,打開http://localhost:8761/eureka,可以看到服務以及註冊進來了
四、Eureka的高可用
Server之間:添加其他server的地址
Client:在每個client的配置文件中,添加所有server的地址