目錄:
1.eureka:
2.ribbon:
3.feign:
4.zuul路由網(wǎng)關(guān):
5.hystrix斷路器:
6.config配置中心:
7.bus消息總線
8.sleuth 鏈路追蹤
1.eureka:
eureka集群:相互注冊,相互守望。
自我保護(hù)機(jī)制:防止網(wǎng)絡(luò)故障的情況下,server端對client端進(jìn)行清理。正常情況下,server端在90秒內(nèi)接收不到client端的心跳,就會注銷該服務(wù)。但啟動了自我保護(hù),則不會立即清理,依舊會保留該微服務(wù)信息。一句話,寧可保留錯誤的信息,也不會盲目注銷任何可能健康的服務(wù)。
服務(wù)注冊流程:
2.ribbon:
ribbon主要負(fù)責(zé)客戶端的負(fù)載均衡和服務(wù)調(diào)用。
ribbon負(fù)載均衡和nginx負(fù)載均衡的區(qū)別:ribbon負(fù)載均衡時本地服務(wù)調(diào)用,nginx負(fù)載均衡是服務(wù)端負(fù)載均衡。
ribbon負(fù)載均衡策略:輪詢,隨機(jī),可用過濾(過濾掉那些失效或者高并發(fā)的服務(wù))
ribbon采用RestTemplate進(jìn)行服務(wù)調(diào)用。
3.feign:
主要解決服務(wù)間的調(diào)用。
需要創(chuàng)建一個接口,并添加注解feignclient即可。feign集成了ribbon。
4.zuul路由網(wǎng)關(guān):
網(wǎng)關(guān)是微服務(wù)的入口,外部由網(wǎng)關(guān)訪問各個微服務(wù),核心是路由和過濾。
有了路由網(wǎng)關(guān),各個微服務(wù)的端口就不會對外暴露,只需要暴露路由網(wǎng)關(guān)的ip地址即可。
動態(tài)路由:通過服務(wù)名就可以路由到對應(yīng)的服務(wù)中。
過濾器:因?yàn)槊恳粋€請求都會經(jīng)過路由網(wǎng)關(guān),所以經(jīng)常在路由網(wǎng)關(guān)中進(jìn)行全局過濾。例如跨域等。
5.hystrix斷路器:
hystrix主要解決分布式系統(tǒng)中,服務(wù)之間調(diào)用出現(xiàn)延遲,異常,宕機(jī)等情況時,避免整個服務(wù)出現(xiàn)問題,提高了系統(tǒng)的可用性。
服務(wù)降級:當(dāng)服務(wù)出現(xiàn)問題后,直接給用戶一個fallback的友好提示。
服務(wù)熔斷:當(dāng)服務(wù)調(diào)用出現(xiàn)問題后,直接熔斷,而不是等待超時,之后通過服務(wù)降級給用戶一個友好提示。服務(wù)熔斷是服務(wù)降級的一種方式。
服務(wù)雪崩:多個服務(wù)之間調(diào)用,因?yàn)槟骋粋€服務(wù)出現(xiàn)故障,導(dǎo)致系統(tǒng)崩潰。
服務(wù)限流:限制并發(fā)數(shù)量,有序進(jìn)行。
6.config配置中心:
當(dāng)微服務(wù)中有非常多的微服務(wù)時,往往修改一個相同的配置,就需要修改全部服務(wù)的配置,造成耗時費(fèi)力,所以需要一個全局的配置中心,只修改一處,全局生效。
并且有了配置中心后,還可以進(jìn)行測試,開發(fā)和生成環(huán)境的統(tǒng)一配置。
通常bootstrap.yml的配置優(yōu)先級比application.yml的優(yōu)先級高,所以config配置中心會優(yōu)先加載,再結(jié)合application.yml的配置。
7.bus消息總線
bus需要和config配合使用,因?yàn)閏onfig配置后,要么需要重啟,要么需要發(fā)送post請求通知。所以通過bus可以刷新配置,統(tǒng)一動態(tài)配置。
8.sleuth 鏈路追蹤
對各個微服務(wù)之間的調(diào)用進(jìn)行路徑追蹤。