您好,登錄后才能下訂單哦!
這篇文章主要介紹“spring cloud集成ribbon負載均衡怎么實現”,在日常操作中,相信很多人在spring cloud集成ribbon負載均衡怎么實現問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”spring cloud集成ribbon負載均衡怎么實現”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
本文比較簡單集成ribbon,如需要更詳細,請查看我的更多博客內容。
首先創建兩個服務提供者
服務一,集成的nacos注冊中心,這塊隨便寫一個同名接口
端口配置8301
服務二,同名接口內容修改,其他跟上一個服務一大體內容一致
端口配置成8302
創建服務消費者
RibbonConfig.java
package com.example.nacosribbonconsumers.config; import com.netflix.loadbalancer.IRule; import com.netflix.loadbalancer.RoundRobinRule; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.netflix.ribbon.RibbonClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; @Configuration // 如果多個服務可以選擇不同的策略 /*@RibbonClients({ @RibbonClient(name = "other",configuration = OtherConfig.class), @RibbonClient(name = "provider",configuration = ProviderConfig.class) })*/ @RibbonClient(name = "nacos-ribbon-provider") public class RibbonConfig { //定義負載均衡規則 @Bean public IRule ribbonRule(){ return new RoundRobinRule(); /** * RoundRobinRule: * 輪詢規則 * * RandomRule: * 隨機規則 * * WeightedResponseTimeRule: * 使用響應時間的平均或者百分比為每個服務分配權重的規則,如果沒法收集響應時間信息,會默認使用輪詢規則 * * BestAvailableRule: * 會先根據斷路器過濾掉處于故障的服務,然后選擇并發量最小的服務 * * ZoneAvoidanceRule: * 根據server所在Zone和其性能,選擇服務器,默認規則 * * AvailabilityFilteringRule: * 先根據斷路器規則過濾掉有問題的服務,然后對剩余的服務按照輪詢的策略進行訪問 * * RetryRule: * 先按照RoundRobinRule規則進行服務獲取,如果調用服務失敗會在指定時間內進行重試,直到獲取到可用的服務。 */ } @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); } }
RibbonTest.java
package com.example.nacosribbonconsumers.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @RestController public class RibbonTest { @Autowired private RestTemplate restTemplate; @GetMapping(value = "/ribbon-consumers/ribbon-test") public String printProviderLog(){ String result = restTemplate.getForObject("http://nacos-ribbon-provider/ribbon-test", String.class); return result; } }
pom包
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </dependency>
配置文件
先啟動兩個服務提供者,然后在啟動服務消費者,瀏覽訪問
到此,關于“spring cloud集成ribbon負載均衡怎么實現”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。