浅学习使用Ribbon 和 Feign的理解和使用
?
Ribbon是Netflix公司開源的一個負載均衡的項目,是一個基于 HTTP、TCP的客戶端負載均衡器.
什么是負載均衡?
? ? ? ? 負載均衡是微服務架構中必須使用的技術,通過負載均衡來實現(xiàn)系統(tǒng)的高可用、集群擴容等功能。負載均衡可通過
硬件設備及軟件來實現(xiàn),硬件比如:F5、Array等,軟件比如:LVS、Nginx等。
常用的負載均衡算法有:?輪循、隨機、加權輪循、加權隨機、地址哈希等方法。
上面的都是服務端負載均衡,客戶端負載均衡與服務端負載均衡的區(qū)別在于客戶端要維護一份服務列表,Ribbon從
Eureka Server獲取服務列表,Ribbon根據(jù)負載均衡算法直接請求到具體的微服務,中間省去了負載均衡服務器。
? ?
? ? ? ? ?
1. 導入Ribbon依賴
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ribbon</artifactId><version>1.3.6.RELEASE</version> </dependency>2.?application.yml中配置ribbon參數(shù)
ribbon:MaxAutoRetries: 2 #最大重試次數(shù),當Eureka中可以找到服務,但是服務連不上時將會重試MaxAutoRetriesNextServer: 3 #切換實例的重試次數(shù)OkToRetryOnAllOperations: false #對所有操作請求都進行重試,如果是get則可以,如果是post,put等操作沒有實現(xiàn)冪等的情況下是很危險的,所以設置為falseConnectTimeout: 5000 #請求連接的超時時間ReadTimeout: 6000 #請求處理的超時時間3.負載均衡測試
1. 啟動兩個負載均衡服務時,注意端口要不一致. 啟動完成觀察Eureka Server的服務列表。
2.注入RestTemplate,添加?@LoadBalanced 注解。
? ? ? ?
3.測試。 rest請求路徑上更換服務名
?? ? ? ? ??
Feign介紹
Feign是Netflix公司開源的輕量級rest客戶端,使用Feign可以非常方便的實現(xiàn)Http 客戶端。Spring Cloud引入
Feign并且集成了Ribbon實現(xiàn)客戶端負載均衡調(diào)用。
?
<!-- 引入Feign依賴--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>? ? ? ? ??
? ?啟動類中加入@EnableFeignClients注解,并進行測試。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的浅学习使用Ribbon 和 Feign的理解和使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA高并发的三种实现
- 下一篇: 错误:docker-ce-cli con