服務(wù)治理:用來(lái)實(shí)現(xiàn)各個(gè)微服務(wù)實(shí)例的自動(dòng)化注冊(cè)和發(fā)現(xiàn)笛谦。
服務(wù)注冊(cè):
注冊(cè)中心以心跳的方式去監(jiān)測(cè)清單中的服務(wù)是否可用
服務(wù)發(fā)現(xiàn):
Eureka:實(shí)現(xiàn)服務(wù)注冊(cè)和發(fā)現(xiàn)? 包含了服務(wù)器組件和客戶端組件
服務(wù)端:服務(wù)注冊(cè)中心
客戶端:處理服務(wù)的注冊(cè)與發(fā)現(xiàn)
demo:(springboot2.X與1.X有所差別驶睦,本實(shí)例使用2.1.4.RELEASE)
1.搭建注冊(cè)中心:
引入maven
添加注解 @EnableEurekaServer艇潭,啟動(dòng)一個(gè)服務(wù)注冊(cè)中心
默認(rèn)配置下掷邦,服務(wù)注冊(cè)中心會(huì)將自己作為客戶端來(lái)嘗試注冊(cè)自己品洛,所以需要禁用自身的客戶端注冊(cè)行為裁赠,修改配置:
默認(rèn)eureka注冊(cè)中心服務(wù)器地址
啟動(dòng)項(xiàng)目? 瀏覽器訪問(wèn)http://localhost:7777/
2.注冊(cè)服務(wù)提供者 (創(chuàng)建新項(xiàng)目)
引入maven
添加注解
修改配置
寫(xiě)個(gè)controller
啟動(dòng)項(xiàng)目? 發(fā)現(xiàn)注冊(cè)中心 存在 服務(wù)
高可用注冊(cè)中心:(重點(diǎn))
之前的配置是單節(jié)點(diǎn)的服務(wù)注冊(cè)中心
高可用 就是 所有節(jié)點(diǎn)既是服務(wù)提供方? 也是服務(wù)消費(fèi)方界阁,將自己作為服務(wù)向其他服務(wù)注冊(cè)中心注冊(cè)自己。
構(gòu)建雙節(jié)點(diǎn)的服務(wù)注冊(cè)中心集群實(shí)例:
application-peer1.properties
eureka.client.service-url.defaultZone? 指向peer2
application-peer2.properties
eureka.client.service-url.defaultZone? 指向peer1
修改hosts 文件 添加對(duì)peer1 peer2 的轉(zhuǎn)換? 挂据,使 service-url能在本地正確的訪問(wèn)到?
Windows :? C:\Windows\System32\drivers\etc\hosts
linux? :? etc/hosts
打成jar包? 分別以peer1? peer2 的配置文件啟動(dòng)項(xiàng)目
啟動(dòng) 會(huì)發(fā)現(xiàn)第一個(gè)啟動(dòng)報(bào)錯(cuò)
不用管? 當(dāng)兩個(gè)啟動(dòng)完后之后? 瀏覽器訪問(wèn)http://localhost:8888/? http://localhost:9999/
服務(wù)提供方修改配置:
啟動(dòng) 項(xiàng)目? 會(huì)發(fā)現(xiàn)? hello-service同時(shí)注冊(cè)到peer1 peer2上,如果斷開(kāi)peer1? 在peer2上依舊可以訪問(wèn) hello-service? 從而實(shí)現(xiàn)服務(wù)注冊(cè)中心的高可用儿普。
3.服務(wù)發(fā)現(xiàn)與消費(fèi)(創(chuàng)建新項(xiàng)目)
發(fā)現(xiàn)服務(wù):由Eureka客戶端完成
消費(fèi)服務(wù):由Ribbon完成崎逃。
Ribbon是一個(gè)基于HTTP 和 TCP的客戶端負(fù)載均衡器
引入maven
主方法添加注解? 開(kāi)啟服務(wù)發(fā)現(xiàn)
修改配置文件:
配置客戶端負(fù)載均衡
調(diào)用注冊(cè)中心的服務(wù)
啟動(dòng)項(xiàng)目? 發(fā)現(xiàn)? 注冊(cè)中心 多了一個(gè)eureka-consumer服務(wù)