一. Eureka服務(wù)注冊(cè)中心
實(shí)現(xiàn)服務(wù)注冊(cè)發(fā)現(xiàn)功能,故障轉(zhuǎn)移;
Eureka Server和Eureka Client;
服務(wù)啟動(dòng)后,會(huì)在Server端進(jìn)行注冊(cè),加入服務(wù)注冊(cè)表,存儲(chǔ)服務(wù)的信息;
Eureka Client是一個(gè)java客戶(hù)端,默認(rèn)使用輪詢(xún)的負(fù)載均衡;
配置:name,url
@EnableEurekaServer,@EnableEurekaClient 啟動(dòng)服務(wù)
注入RestTemplate 使用
主機(jī)號(hào)+端口調(diào)用
傳統(tǒng)情況下在java代碼里訪問(wèn)restful服務(wù),一般使用Apache的HttpClient。不過(guò)此種方法使用起來(lái)太過(guò)繁瑣。spring提供了一種簡(jiǎn)單便捷的模板類(lèi)來(lái)進(jìn)行操作,這就是RestTemplate
二. Ribbon客戶(hù)端的負(fù)載均衡
客戶(hù)端負(fù)載均衡的工具
@LoadBalanced默認(rèn)的輪詢(xún),還有隨機(jī)連接,自定義
直接采用服務(wù)名的方式進(jìn)行調(diào)用
三. Feign遠(yuǎn)程調(diào)用
基于Ribbon的另一個(gè)負(fù)載均衡的客戶(hù)端框架
在接口定義要調(diào)用的服務(wù)名即可
啟動(dòng)類(lèi)@EnableFeignClients,接口@FeignClient
四. Hystrix斷路器
當(dāng)其中一個(gè)服務(wù)阻塞或者異常的時(shí)候,如果有另的服務(wù)調(diào)用了它,會(huì)導(dǎo)致一個(gè)雪崩效應(yīng)
它是一個(gè)分布式系統(tǒng)延遲和容器的工具,保證服務(wù)出現(xiàn)問(wèn)題的情況下,不會(huì)導(dǎo)致整個(gè)服務(wù)失敗。
啟動(dòng)類(lèi)@EnableCircuitBreaker
在接口@FeignClient,加入fallback參數(shù)。定義另一個(gè)接口實(shí)現(xiàn)它(熔斷類(lèi)),作為服務(wù)降級(jí)后的快速響應(yīng)
五、Zuul路由網(wǎng)關(guān)
對(duì)請(qǐng)求的路由和過(guò)濾
將外部的請(qǐng)求轉(zhuǎn)發(fā)到具體的服務(wù)實(shí)例上
過(guò)濾功能負(fù)責(zé)對(duì)請(qǐng)求的處理進(jìn)行干預(yù)。
zuul和Eureka整合,zuul注冊(cè)Eureka里,作為Eureka服務(wù)治理下的應(yīng)用,可以從Eureka獲取到其他服務(wù)的消息。
@EnableZuulProxy
統(tǒng)一的網(wǎng)關(guān)配置
服務(wù)名
可以通過(guò)路徑訪問(wèn)服務(wù)
不可通過(guò)路徑訪問(wèn)服務(wù)
六、spring cloud config配置中心
為微服務(wù)提供了中心化的配置
七、Nacos服務(wù)注冊(cè)發(fā)現(xiàn)
配置中心信息:服務(wù)名,url網(wǎng)址
@EnableDiscoveryClient
八、Sentinel 服務(wù)熔斷
九、Nacos Config Profile分布式配置
在Nacos Server控制臺(tái),添加配置文件
本地項(xiàng)目配置文件:bootstrap.yml,對(duì)應(yīng)讀取服務(wù)器上的yml文件
@RefreshScope實(shí)現(xiàn)動(dòng)態(tài)更新
十、Dubbo
Java RPC 分布式服務(wù)框架
面向接口的遠(yuǎn)程方法調(diào)用,智能容錯(cuò)和負(fù)載均衡,以及服務(wù)自動(dòng)注冊(cè)和發(fā)現(xiàn)。
RPC 是面向過(guò)程,Restful 是面向資源
dubbo-api,provider,consumer
負(fù)載均衡:隨機(jī),輪循