Eureka服務(wù)

為什么 要用注冊(cè)中心?

1、微服務(wù)數(shù)量眾多,要進(jìn)行遠(yuǎn)程調(diào)用就需要知道服務(wù)端的ip地址和端口,注冊(cè)中心幫助我們管理這些服務(wù)的ip和端口。

2、微服務(wù)會(huì)實(shí)時(shí)上報(bào)自己的狀態(tài),注冊(cè)中心統(tǒng)一管理這些微服務(wù)的狀態(tài),將存在問題的服務(wù)踢出服務(wù)列表,客戶端獲取到可用的服務(wù)進(jìn)行調(diào)用。

spring cloud Eureka介紹

Spring Cloud Eureka 是對(duì)Netflix公司的Eureka的二次封裝,它實(shí)現(xiàn)了服務(wù)治理的功能,Spring Cloud Eureka提供服務(wù)端與客戶端,服務(wù)端即是Eureka服務(wù)注冊(cè)中心,客戶端完成微服務(wù)向Eureka服務(wù)的注冊(cè)與發(fā)現(xiàn)。服務(wù)端和客戶端均采用Java語言編寫。

1、Eureka Server是服務(wù)端,負(fù)責(zé)管理各各微服務(wù)結(jié)點(diǎn)的信息和狀態(tài)。

2、在微服務(wù)上部署Eureka Client程序,遠(yuǎn)程訪問Eureka Server將自己注冊(cè)在Eureka Server。

3、微服務(wù)需要調(diào)用另一個(gè)微服務(wù)時(shí)從Eureka Server中獲取服務(wù)調(diào)用地址,進(jìn)行遠(yuǎn)程調(diào)用。

首先創(chuàng)建一個(gè)Eureka的服務(wù)端(建議使用jdk1.8,使用9.0可能出現(xiàn)問題)

使用idea快速創(chuàng)建一個(gè)Eureka服務(wù)端,配置一個(gè)單機(jī)狀態(tài)的Eureka服務(wù),自己向自己注冊(cè)

Eureka-service

配置文件設(shè)置:

server:

? port:port:50101#服務(wù)端口

spring:

????application:

????????name: eureka-server #指定服務(wù)名

eureka:

????client:

? ????? registerWithEureka: false #服務(wù)注冊(cè),是否將自己注冊(cè)到Eureka服務(wù)中

? ????? fetchRegistry: false #服務(wù)發(fā)現(xiàn),是否從Eureka中獲取注冊(cè)信息

? ????? serviceUrl: #Eureka客戶端與Eureka服務(wù)端的交互地址,高可用狀態(tài)配置對(duì)方的地址,單機(jī)狀態(tài)配置自己(如果不配置則默認(rèn)本機(jī)8761端口)

? ? ? ? ?defaultZone: http://localhost:50101/eureka/


在springBoot的啟動(dòng)類上標(biāo)注此服務(wù)為eureka服務(wù)

@EnableEurekaServer注解

運(yùn)行服務(wù)并訪問 http://localhost:50101/就可以看到以下界面

訪問成功

高可用環(huán)境搭建

Eureka Server 高可用環(huán)境需要部署兩個(gè)Eureka server,它們互相向?qū)Ψ阶?cè)。如果在本機(jī)啟動(dòng)兩個(gè)Eureka需要注意兩個(gè)Eureka Server的端口要設(shè)置不一樣,這里我們部署一個(gè)Eureka Server工程,將端口可配置,制作兩個(gè)Eureka Server啟動(dòng)腳本,啟動(dòng)不同的端口

配置文件設(shè)置:

server:

? port: ${port:50101}#服務(wù)端口

eureka:

client:

? ? registerWithEureka: true #服務(wù)注冊(cè),是否將自己注冊(cè)到Eureka服務(wù)中

? ? fetchRegistry: true #服務(wù)發(fā)現(xiàn),是否從Eureka中獲取注冊(cè)信息

? ? serviceUrl: #Eureka客戶端與Eureka服務(wù)端的交互地址,高可用狀態(tài)配置對(duì)方的地址,單機(jī)狀態(tài)配置自己(如果不配置則默認(rèn)本機(jī)8761端口)

? ? ? defaultZone: ${EUREKA_SERVER:http://localhost:50102/eureka/}

server:

? ? enable-self-preservation: false #是否開啟自我保護(hù)模式

? ? eviction-interval-timer-in-ms: 60000 #服務(wù)注冊(cè)表清理間隔(單位毫秒,默認(rèn)是60*1000)

? instance:

? ? hostname: ${EUREKA_DOMAIN:eureka01}


配置腳本:

-DPORT=50102 -DEUREKA=http://localhost:50101/eureka/ -DEUREKA_DOMAIN=eureka02

-DPORT=50101 -DEUREKA=http://localhost:50102/eureka/ -DEUREKA_DOMAIN=eureka01


如下圖:

由于我修改了host文件, eureka01對(duì)應(yīng)的就是本機(jī)路徑,可以根據(jù)自己的需要修改,50101向50102端口的eureka注冊(cè),50102向50101端口的eureka注冊(cè)。

腳本詳情

啟動(dòng)兩個(gè)Eureka服務(wù),先啟動(dòng)的那個(gè)會(huì)因?yàn)檎也坏搅硗庖粋€(gè)服務(wù)而報(bào)錯(cuò),不用在意,直接啟動(dòng)另外一個(gè)服務(wù),分別訪問:http://localhost:50101/,http://localhost:50102/會(huì)顯示下面的頁面

服務(wù)注冊(cè)

使用IDE快速創(chuàng)建一個(gè)Eureka的客戶端

eureka-client

配置文件設(shè)置:

server:

? port: ${port:31001}#服務(wù)端口

spring:

application:

? ? ? name: qiecai

eureka:

client:

? ? ? ? registerWithEureka: true #服務(wù)注冊(cè)開關(guān)

? ? ? ? fetchRegistry: true #服務(wù)發(fā)現(xiàn)開關(guān)

? ? ? ? serviceUrl: #Eureka客戶端與Eureka服務(wù)端進(jìn)行交互的地址,多個(gè)中間用逗號(hào)分隔

? ? ? ? ? ? defaultZone:http://localhost:50101/eureka/,http://localhost:50102/eureka/}

instance:

? ? ? ? prefer-ip-address: true #將自己的ip地址注冊(cè)到Eureka服務(wù)中

? ? ? ? ip-address: ${IP_ADDRESS:127.0.0.1}

instance-id: ${spring.application.name}:${server.port}


腳本設(shè)置

-DPORT=31001


在springBoot的啟動(dòng)類上標(biāo)注此服務(wù)為eureka客戶端

eureka-client

啟動(dòng)服務(wù)后,刷新eureka服務(wù)端,會(huì)發(fā)現(xiàn)切菜服務(wù)注冊(cè)到了兩個(gè)服務(wù)端上

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容