Spring Cloud Eureka
- 基於Netflix Eureka做了二次封裝
-
兩個組件組成:
- Eureka Server 註冊中心
- Eureka Client 服務註冊
入門註冊中心(Eureka Server)
1、下載Eureka快速開發模板代碼
2、填坑開始!
直接啓動,啓動類上要添加@EnableEurekaServer,不然訪問會報404.
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
3、服務本身也需要註冊
yml中沒有配置(我習慣用yml,可以直接將application改爲yml),系統啓動後,一直報錯,這個是Eureka服務需要去找註冊
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
# register-with-eureka: false
spring:
application:
name: eureka
server:
port: 8761
現在就不會報錯了!可以看到官方UI上的註冊發現有本身,且服務名也是我們自己命名的。
這裏的service-url是一個Map對象!!!需要注意,進去原碼可以看清楚
public static final String DEFAULT_URL = "http://localhost:8761/eureka/";
public static final String DEFAULT_ZONE = "defaultZone";
private Map<String, String> serviceUrl = new HashMap();
public void setServiceUrl(Map<String, String> serviceUrl) {
this.serviceUrl = serviceUrl;
}
想要優化一點,就是將服務本身假移除,讓它不出現在註冊列表中,我們可以加一個配置
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
register-with-eureka: false
spring:
application:
name: eureka
server:
port: 8761
這樣就是會註冊服務成功啦!
注意!!!
Eureka是基於心跳機制的,可以看到它每隔一段時間就會檢測一次,所以可能一開始啓動服務的時候是沒有服務的,可能要等下一次心跳檢測就會將服務註冊上去。
如果本文對你有所幫助,歡迎關注技術公衆號