spring cloud eureka服務發現

2021-09-02 20:49:02 字數 3410 閱讀 1528

[size=x-large][color=black][b]1.eureka服務端[/b][/color][/size]

服務端**

[size=large][color=black][b]1.1高可用和域[/b][/color][/size]

eureka伺服器沒有後端儲存,但註冊的服務例項都有傳送心跳保持他們的登記日期(這可以在記憶體中完成),客戶也有乙個記憶體中的快取(所以他們不需要為每乙個服務的情況去註冊一次)。預設情況下eureka伺服器也是乙個eureka客戶端,還需要乙個url來定位節點

[size=large][color=black][b]1.2單服務模式[/b][/color][/size]

[size=large][color=black][b]1.3對等意識[/b][/color][/size]

我們使用上面例子yaml檔案的配置執行在兩個相同的伺服器上,使用不同的spring profile。你可以使用這個配置在單個伺服器測試對等性 。

[size=large][color=black][b]1.4 使用ip[/b][/color][/size]

例項名稱顯示ip配置如下:

[quote]eureka.instance.preferipaddress=true[/quote]

[size=x-large][color=black][b]2.erueka客戶端[/b][/color][/size]

eureka是netflix的服務發現伺服器和客戶端。eureka是提供服務註冊,為每個註冊服務提供知曉其他服務狀態的服務。

[size=large][color=black][b]2.1 eureka客戶端**和配置[/b][/color][/size]

當乙個客戶端註冊到eureka,它會提供關於它自己的埠、位址、健康監控url和home頁面等等的元資料,erueka會從每個例項接受心跳資訊。如果心跳在配置的時間內失敗,例項通常會從登錄檔中移除。

下面是eureka客戶端**:

在這裡使用的是@enableeurekaclient,這個標註只能用於eureka服務,還可以使用@enablediscoveryclient。

[size=large][color=black][b]2.2 狀態頁面和健康監控[/b][/color][/size]

eureka例項的狀態頁面和健康監控預設為/info和/health,這是spring boot actuator提供的預設終端點。當應用不使用預設的上下文(context path或servlet path,比如配置server.servletpath=/test),或者管理zhongduan路徑(比如配置management.contextpath=/admin)。

eureka:

instance:

statuspageurlpath: $/info

healthcheckurlpath: $/health

[size=large][color=black][b]2.3eureka的元資料[/b][/color][/size]

可以通過eureka.instance.metadatamap修改元資料,這些元資料不會改變客戶端的行為。

使用這個配置,多個服務例項可以配置在乙個主機上,random.value確保了例項id的唯一性。當然需要例項的埠不一樣

[size=large][color=black][b]2.4 使用discoveryclient類[/b][/color][/size]

如果你的應用使用@enableeurekaclient註解,那麼只能使用eureka來發現服務例項。

乙個方法是使用com.netflix.discovery.discoveryclient

@autowired

private discoveryclient discoveryclient;

public string serviceurl()

[size=large][color=black][b]2.5 discoveryclient類的替代品[/b][/color][/size]

你不必使用原始netflix discoveryclient,通常更方便是使用乙個包裝器。spring cloud提供了feign(乙個rest客戶端構建器),spring resttemplate使用乙個eureka服務標示代替物理的url。用乙個組固定的物理伺服器配置ribbon,使用.ribbon.listofservers配置,用逗號分隔伺服器的實體地址或主機名,其中是客戶端的id。

你也可以使用org.springframework.cloud.client.discovery.discoveryclient,不特定於netflix,**如下:

@autowired

private discoveryclient discoveryclient;

public string serviceurl()

return null;

}

[size=large][color=black][b]2.6註冊服務心跳[/b][/color][/size]

註冊服務預設心跳時間為30秒,當乙個伺服器不可用,需要3個心跳才能讓伺服器和客戶端的元資料相同。可以使用eureka.instance.leaserenewalintervalinseconds加快這個過程。在生產環境最好使用預設配置

[url]

spring cloud eureka服務發現

服務端 enableeurekaserver public class public static void main string args eureka伺服器沒有後端儲存,但註冊的服務例項都有傳送心跳保持他們的登記日期 這可以在記憶體中完成 客戶也有乙個記憶體中的快取 所以他們不需要為每乙個服務...

SpringCloud Eureka服務構建

匯入依賴 編寫配置檔案 啟動服務 org.springframework.cloudgroupid spring cloud starter netflix eureka serverartifactid 2.2.5.releaseversion dependency server port 700...

spring cloud Eureka服務註冊

yls 2020 5 5 org.springframework.cloud spring cloud starter netflix eureka server enableeurekaserver public static void main string args spring name i...