springCloud Finchley 实战入门(基于springBoot 2.0.3)【三 Eureka-高可用服务注册中心】...
Eureka高可用注冊(cè)中心
Eureka Server的設(shè)計(jì)一開始就考慮到了高可用的問題,在eureka服務(wù)治理設(shè)計(jì)中,所有的節(jié)點(diǎn)即是是服務(wù)提供方,也是服務(wù)消費(fèi)方。
在部署高可用注冊(cè)中心前我們先需要準(zhǔn)備一下,本地環(huán)境。因?yàn)槲覀儗?shí)例是在單臺(tái)電腦上的,所以需要模擬墮胎服務(wù)器,我們需要修改一下本機(jī)的host文件。
windows的host文件在C:\Windows\System32\drivers\etc\hosts
在host文件后面加上
修改完成,我們就來嘗試搭建高可用的服務(wù)注冊(cè)中心集群。接著上一章的服務(wù)中心的基礎(chǔ)上面擴(kuò)展,來構(gòu)建一個(gè)雙節(jié)點(diǎn)服務(wù)注冊(cè)中心集群。
在resource目錄下面:
創(chuàng)建application-peer1.yml配置文件,作為peer1服務(wù)中心的配置,并將serviceId指向peer2.
創(chuàng)建application-peer2.yml配置文件,作為peer2服務(wù)中心的配置,并將serviceId指向peer1.
server:port: 8763 spring:application:name: service-register eureka:instance:prefer-ip-address: falsehostname: peer2client:fetch-registry: trueregister-with-eureka: trueserviceUrl:defaultZone: http://peer1:8762/eureka/server:wait-time-in-ms-when-sync-empty: 0接下來通過spring.profiles.active屬性來分別啟動(dòng)peer1和peer2.
我啟動(dòng)的做法是不在idea里啟動(dòng),而是把服務(wù)注冊(cè)中心打包,通過cmd啟動(dòng)。
maven打包
15324251491.jpg
然后通過cmd命令分別啟動(dòng)服務(wù)
[圖片上傳中...(15324253911.jpg-db47b5-1532490920148-0)]
15324254351.jpg
java -jar eureka-register-center-0.0.1-SNAPSHOT.jar --spring.profiles.active
15324253911.jpgjava -jar eureka-register-center-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
兩個(gè)服務(wù)啟動(dòng)后,我們?cè)L問一下http://localhost:8762/或者h(yuǎn)ttp://localhost:8763/
這里可以看到兩個(gè)注冊(cè)中心部署相互注冊(cè)成功了。
關(guān)閉其中一個(gè)服務(wù)我們可以看到對(duì)應(yīng)的節(jié)點(diǎn)變成不可用了。
15324256591.jpg
設(shè)置多個(gè)服務(wù)注冊(cè)中心后,服務(wù)提供者還需要做一些簡單的配置才能將服務(wù)注冊(cè)到Eureka server集群中。
在這里我們按照前面的做法,重新新建一個(gè)服務(wù)提供者module,命名為"eureka-bussniss-service-user"當(dāng)作是我們平時(shí)項(xiàng)目中用戶服務(wù)模塊,專門處理用戶相關(guān)服務(wù)的。
因?yàn)槟壳胺?wù)注冊(cè)中心是多個(gè)的,所以我們?cè)诜?wù)提供者的配置文件上還需要做一些配置。
添加下面的屬性,表示把服務(wù)注冊(cè)到指定的注冊(cè)中心,注冊(cè)中心地址用逗號(hào)隔開;
完整的application.yml配置如下:
spring:application:name: service-user server:port: 8802 eureka:client:serviceUrl:defaultZone: http://peer1:8762/eureka/,http://peer2:8763/eureka/記得主類添加@EnableEurekaClient注解,然后在確保服務(wù)注冊(cè)中心正常的情況下,啟動(dòng)該項(xiàng)目。如果項(xiàng)目沒有報(bào)錯(cuò)那就說明我們的配置應(yīng)該是正常的。打開http://localhost:8763/或者h(yuǎn)ttp://localhost:8762/我們可以看到service-user已經(jīng)同時(shí)注冊(cè)到了服務(wù)注冊(cè)中心。
此時(shí)若斷開peer1服務(wù),由于service-user服務(wù)也向peer2注冊(cè),因此peer2上面的其他服務(wù)依然能夠訪問到service-user。從而實(shí)現(xiàn)了注冊(cè)中心的高可用。
項(xiàng)目的源碼
服務(wù)提供者已經(jīng)完成了,下一篇我們將會(huì)實(shí)現(xiàn)服務(wù)消費(fèi)者,以及使用ribbon實(shí)現(xiàn)負(fù)載均衡。
總結(jié)
以上是生活随笔為你收集整理的springCloud Finchley 实战入门(基于springBoot 2.0.3)【三 Eureka-高可用服务注册中心】...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: node 更新_被创造者嫌弃,Node.
- 下一篇: 字符串右移n位