簡(jiǎn)介:
Eureka是一種服務(wù)發(fā)現(xiàn)框架,基于REST風(fēng)格的服務(wù),主要定位運(yùn)行在AWS云服務(wù)的中間層服務(wù),以達(dá)到負(fù)載均衡和故障轉(zhuǎn)移的目的。SpringCloud將它集成在其子項(xiàng)目spring-cloud-netflix中,以實(shí)現(xiàn)SpringCloud的服務(wù)發(fā)現(xiàn)功能。
架構(gòu)圖:

Eureka包含兩個(gè)組件:Eureka Server 和 Eureka Client,它們的作用如下:
Eureka Client是一個(gè)Java客戶端,用于簡(jiǎn)化與Eureka Server的交互;
Eureka Server提供服務(wù)發(fā)現(xiàn)的能力,各個(gè)微服務(wù)啟動(dòng)時(shí),會(huì)通過Eureka Client向Eureka Server進(jìn)行注冊(cè)自己的信息(例如網(wǎng)絡(luò)信息),Eureka Server會(huì)存儲(chǔ)該服務(wù)的信息;
微服務(wù)啟動(dòng)后,會(huì)周期性地向Eureka Server發(fā)送心跳(默認(rèn)周期為30秒)以續(xù)約自己的信息。如果Eureka Server在一定時(shí)間內(nèi)沒有接收到某個(gè)微服務(wù)節(jié)點(diǎn)的心跳,Eureka Server將會(huì)注銷該微服務(wù)節(jié)點(diǎn)(默認(rèn)90秒);
每個(gè)Eureka Server同時(shí)也是Eureka Client,多個(gè)Eureka Server之間通過復(fù)制的方式完成服務(wù)注冊(cè)表的同步;
Eureka Client會(huì)緩存Eureka Server中的信息。即使所有的Eureka Server節(jié)點(diǎn)都宕掉,服務(wù)消費(fèi)者依然可以使用緩存中的信息找到服務(wù)提供者。
Eureka通過心跳檢測(cè)、健康檢查和客戶端緩存等機(jī)制,提高了系統(tǒng)的靈活性、可伸縮性和可用性。