日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring cloud alibaba之Ribbon負載均衡實現方案

瀏覽:28日期:2023-06-29 16:45:19
目錄1.什么是Ribbon1.1客戶端的負載均衡1.2服務器端的負載均衡1.3常見負載均衡算法2.Nacos使用Ribbon3.Ribbon負載均衡策略3.1常用負載均衡描述3.3修改默認的負載均衡策略--配置文件的方式3.4自定義負載均衡策略4.使用spring cloud loadbalancer替代ribbon1.什么是Ribbon

目前主流的負載均衡方案分為以下兩種:

(1)集中式負載均衡:在消費者和服務提供者中間使用獨立的代理方式進行負載,有硬件的(F5),軟件的Nginx

(2)客戶端事先拿到提供者請求連接集合,根據自己的請求情況做負載均衡,Ribbon就屬于客戶端自己做負載均衡。

Spring cloud Ribbon是基于Netflix Ribbon實現的一套客戶端的負載均衡工具,Ribbon客戶端提供一系列完善的配置,如超時、重試等。通過Load Balancer獲取到服務器提供的所有機器實例,Ribbon會自動基于某種規則(輪詢、隨機)去調用這些服務。Ribbon也可以實現自己的負載均衡算法。

1.1客戶端的負載均衡

例如spring cloud中的Ribbon,客戶端會有一個服務器地址列表,在發送請求前通過負載均衡算法選擇一個服務器,然后進行訪問,這是客戶端負載均衡,即在客戶端進行負載均衡算法分配。

Spring cloud alibaba之Ribbon負載均衡實現方案

1.2服務器端的負載均衡

例如通過Nginx進行負載均衡,先發送請求,然后通過負載均衡算法,在多個服務器之間選擇一個進行訪問;即在服務器端進行負載均衡算法分配。

Spring cloud alibaba之Ribbon負載均衡實現方案

1.3常見負載均衡算法

(1)隨機:通過隨機選擇服務進行執行,一般這種方法使用較少

(2)輪詢:負載均衡默認實現方式,請求來之后排隊處理

(3)加權輪詢:通過對服務器性能的分型,給高配置、低負載的服務器分配更高的權重,均衡各個服務器的壓力

(4)地址Hash,通過客戶端地址請求地址的hash值取模映射進行調度,

(5)最小鏈接數:即使請求均衡了,壓力不一定會均衡,最小鏈接數法就是根據服務器的情況,例如請求積壓數的參數,將請求分配到當前壓力最小的服務器上

2.Nacos使用Ribbon

(1)Nacos disconvery中默認已經引入了Ribbon,不需要單獨引入

Spring cloud alibaba之Ribbon負載均衡實現方案

(2)添加@LoadBalanced注解

Spring cloud alibaba之Ribbon負載均衡實現方案

(3)調用的時候使用服務器名稱替代ip+端口,即使用默認輪詢的負載均衡方式

Spring cloud alibaba之Ribbon負載均衡實現方案

3.Ribbon負載均衡策略

Spring cloud alibaba之Ribbon負載均衡實現方案

3.1常用負載均衡描述

①RandomRule:隨機選擇一個服務實例

②RoundRobinRule:輪詢負載均衡策略

③RetryTule:在輪詢的基礎上進行重試,一直重試的次數由服務連接的超時時間控制

④WeightedResponseTimeRule:一個服務的平均響應時間越短,則權重越大,那么改實例被選中執行任務的概率也越大

⑤BestAvaliableRule:過濾掉失效的服務實例,順便找出并發最小的服務實例來使用

⑥ZoneAvoidanceRule:判斷所在的區域,選擇最近的服務調用

⑦NacosRule:按隨機與配置的權重進行選擇服務器

3.2修改默認的負載均衡策略--配置類的方式

①賦值一份消費端項目OrderNacos,重命名為OrderRibbon

Spring cloud alibaba之Ribbon負載均衡實現方案

刪除OrderRibbon中原先的OrderNacos.iml文件

Spring cloud alibaba之Ribbon負載均衡實現方案

修改OrderRibbon的pom.xml的ArtifactId值

Spring cloud alibaba之Ribbon負載均衡實現方案

把新添加的OrderRibbon添加到父項目的pom.xml的module中

Spring cloud alibaba之Ribbon負載均衡實現方案

刷新maven項目

Spring cloud alibaba之Ribbon負載均衡實現方案

②創建RibbonConfig配置類

使用@Configuration標識是配置類,使用@Bean注入到spring容器中,方法名必須叫iRule,否則無效。

/** * 重寫負載均衡配置類 */@Configurationpublic class RibbonConfig { //方法名一定要叫iRule @Bean public IRule iRule(){return new RandomRule(); }}

****注意此配置類不能放在@SpringBootApplication的注解@CompentScan掃描得到的地方,否則自定義的配置類就會被所有的RibbonClients共享,

springboot啟動類,沒有配置掃描范圍的話,默認掃描到與啟動類OrderApplication同目錄級別的文件,此處為qingyun包下的文件都會被掃描到。

Spring cloud alibaba之Ribbon負載均衡實現方案

配置的目錄如下:

Spring cloud alibaba之Ribbon負載均衡實現方案

③在啟動類中使用注解@RibbonClients加入配置的自定義負載均衡器,value里面可以配置多個負載均衡器,是個數組類型的值;調用服務創建的RestTemplate使用@LoadBalanced進行修飾。

Spring cloud alibaba之Ribbon負載均衡實現方案

啟動消費者,兩個不同端口的服務提供者,通過頁面訪問,查看負載均衡機制由之前默認的改為輪詢的方式

Spring cloud alibaba之Ribbon負載均衡實現方案

Spring cloud alibaba之Ribbon負載均衡實現方案

3.3修改默認的負載均衡策略--配置文件的方式

使用配置文件的方式設定負載均衡方式,具體到某個服務,格式:服務名.ribbon.NFLoadBalancerRuleClassName=服務方式

stock-service.ribbon.NFLoadBalancerRuleClassName=com.alibaba.cloud.nacos.ribbon.NacosRule

在nacos管理界面配置服務器的權重,權重越大,被選中的概率越大。

Spring cloud alibaba之Ribbon負載均衡實現方案

也可以在項目配置文件中設置

#設置服務的權重spring.cloud.nacos.discovery.weight=43.4自定義負載均衡策略

(1)定義一個類繼承AbstractLoadBalancerRule,重寫choose方法

/** * 自定義負載均衡策略 */public class CustomRule extends AbstractLoadBalancerRule { @Override public void initWithNiwsConfig(IClientConfig iClientConfig) { } @Override public Server choose(Object o) {ILoadBalancer loadBalancer = this.getLoadBalancer(); //獲取當前請求的實例集合List<Server> reachableServers = loadBalancer.getReachableServers(); //使用線程安全生成一個隨機數int i = ThreadLocalRandom.current().nextInt(reachableServers.size()); //獲取服務Server server = reachableServers.get(i); return server; }}

(2)在application.properties中添加配置信息,指向自定義的配置類

stock-service.ribbon.NFLoadBalancerRuleClassName=com.rule.CustomRule

(3)開啟ribbon饑餓加載

當沒有任何配置的情況下,第一次請求服務時,才會請求加載對應的服務實例

Spring cloud alibaba之Ribbon負載均衡實現方案

可以在配置文件application.properties中配置饑餓加載

#開啟ribbon饑餓加載ribbon.eager-load.enabled=true#饑餓加載是服務,多個使用逗號隔開ribbon.eager-load.clients=stock-service

啟動項目的時候,加載配置服務使用的負載均衡策略

Spring cloud alibaba之Ribbon負載均衡實現方案

4.使用spring cloud loadbalancer替代ribbon

(1)在pom.xml中引入nacos-discovery時,去除ribbon,此時項目依賴的包里面已經移除ribbon

Spring cloud alibaba之Ribbon負載均衡實現方案

(2)pom.xml中添加loadbalancer依賴,前提是項目中已經引入了spring cloud依賴(父maven已經引入)

<!-- 添加loadbalancer依賴--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency>

(3)創建RestTemplate時,需要加@LoadBalanced

//程序啟動時創建RestTemplate //使用注解LoadBalanced標識負載均衡,默認輪詢的方式 @Bean @LoadBalanced public RestTemplate restTemplate(RestTemplateBuilder builder){RestTemplate build = builder.build();return build; }

(4)application.properties中禁用ribbon

#禁用ribbonspring.cloud.loadbalancer.ribbon.enabled=false

(5)若是想自定義loadbalancer,與自定義ribbon類似的方式,使用@LoadBalancerClients配置到springboot啟動類中

Spring cloud alibaba之Ribbon負載均衡實現方案

到此這篇關于Spring cloud alibaba--Ribbon負載均衡的文章就介紹到這了,更多相關Spring cloud alibaba--Ribbon負載均衡內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
美女国产一区| 少妇精品久久久一区二区| 日本久久一区| 日韩国产91| 国产乱论精品| 国产一区三区在线播放| 日本国产精品| 久久亚洲美女| 国产精品久久| 神马日本精品| 亚洲精品综合| 国产欧美亚洲一区| 成人污污视频| 亚洲国产成人二区| 黑丝一区二区| 欧美日韩国产一区二区在线观看| 免费在线观看一区| 久久精品青草| 香蕉视频成人在线观看| 国产欧美精品久久| 在线一区视频观看| 香蕉久久久久久| 国产va免费精品观看精品视频| 精品一区三区| 欧美午夜三级| 国产一区欧美| 久久精品99国产国产精| 韩国精品主播一区二区在线观看| 美女久久久久| 国产伦精品一区二区三区视频 | 色婷婷亚洲mv天堂mv在影片| 亚洲精品一区二区在线看| 日韩欧美在线精品| 国产亚洲一区二区手机在线观看| 亚洲资源网站| 欧美gv在线| 日韩不卡一区二区| 91精品国产91久久久久久黑人| 亚洲精品在线a| 日韩不卡视频在线观看| 视频一区日韩精品| 老牛影视精品| 日韩**一区毛片| 久久伦理在线| 麻豆国产欧美一区二区三区| 亚洲一区免费| 日韩免费高清| 国产精品久久久久久久久免费高清| 91久久久精品国产| 精品视频免费| 日本午夜精品| 日韩中文字幕亚洲一区二区va在线| 国产精品不卡| 国产日韩亚洲欧美精品| 亚洲高清成人| 国产成人a视频高清在线观看| 蜜桃av一区二区在线观看| 成午夜精品一区二区三区软件| 综合亚洲自拍| 欧美成人亚洲| 高清av不卡| 国语精品一区| 欧美激情 亚洲a∨综合| 亚洲欧洲国产精品一区| 久久亚洲精品中文字幕蜜潮电影| 国产精品午夜av| 日本伊人久久| 综合欧美精品| 老鸭窝毛片一区二区三区| 欧美性感美女一区二区| 色一区二区三区四区| 国产麻豆一区二区三区| 亚洲ab电影| 在线精品观看| 日韩在线观看一区二区| 国产一区视频在线观看免费| 黄毛片在线观看| 国产精品久久久久蜜臀| 蜜桃精品视频| 欧美aa在线视频| 国产精品亚洲欧美一级在线| 久久国产尿小便嘘嘘| 亚洲18在线| 日本午夜精品久久久久| 欧美一区91| 欧美一级一区| 日韩精品视频在线看| 天堂成人国产精品一区| 亚洲综合不卡| 免费视频一区二区| 亚洲欧美日韩精品一区二区| 欧美特黄一区| 日韩专区一卡二卡| 天堂久久av| 国产日韩欧美在线播放不卡| 国产日韩欧美一区在线| 久久99免费视频| 精品中国亚洲| 亚洲1234区| 欧美性感美女一区二区 | 国产精品伦一区二区| 国产欧美日韩精品一区二区免费| 欧美日韩1区| 久久中文字幕一区二区三区| 国产一区2区| se01亚洲视频| 最新日韩av| 亚洲欧洲日韩精品在线| 日韩高清一区| 欧美国产三级| 中文字幕色婷婷在线视频| 欧美成人久久| 中文字幕av一区二区三区人| 国产精品视频一区二区三区综合| 国产精品久久久久久久免费软件| 精品伊人久久| 亚洲国产成人精品女人| 蜜臀av在线播放一区二区三区 | 少妇精品久久久一区二区| 国产精品mm| 欧美日韩视频网站| 红桃视频国产精品| 亚洲精品免费观看| 久久伊人久久| 亚洲成人一区| 97se亚洲| 日韩在线短视频| 99视频在线精品国自产拍免费观看| 亚洲欧洲av| 97精品国产一区二区三区| 在线综合亚洲| 欧美国产视频| 亚洲综合精品四区| 久久av国产紧身裤| 好看不卡的中文字幕| 国产日本精品| 日韩精品一卡| 奇米亚洲欧美| 激情偷拍久久| 国产日韩欧美一区在线| 国产在线不卡| 国产精品久久久久久av公交车| 日韩网站中文字幕| 男人的天堂亚洲一区| 久久精品二区亚洲w码| 九九在线精品| 国产高清亚洲| 老色鬼久久亚洲一区二区| 精品一区二区三区在线观看视频| 最新日韩欧美| 精品九九在线| 亚洲精品无播放器在线播放| 日韩欧美看国产| 日韩不卡手机在线v区| 成人羞羞视频在线看网址| 日韩精品成人在线观看| 欧美成人综合| 9999国产精品| 色婷婷成人网| 欧美不卡高清| 高清精品久久| 日韩av不卡一区二区| 999国产精品视频| 国产精品激情| 亚洲狼人精品一区二区三区| 亚洲午夜黄色| a天堂资源在线| 日本aⅴ精品一区二区三区| 国产一区视频在线观看免费| 国产一区二区三区日韩精品| 日本va欧美va欧美va精品| 欧美日韩日本国产亚洲在线| 日韩av在线播放网址| 欧美永久精品| 西西人体一区二区| 蜜臀91精品国产高清在线观看| 精品一区视频| 国产精品三p一区二区| 在线精品福利| 99pao成人国产永久免费视频| 日韩在线高清| 成人亚洲一区二区| 国产视频一区二区在线播放| 国产精品色网| 性欧美xxxx免费岛国不卡电影| 精品国产精品国产偷麻豆| 欧美日韩亚洲三区| 亚洲精品伦理| 亚洲一区区二区| 精品一区亚洲| 999久久久91| 五月激情久久| 欧美二三四区| 日韩免费久久| 欧美aa在线观看| 天堂√中文最新版在线| 91综合视频| 欧洲亚洲一区二区三区| 日韩一区亚洲二区| 在线一区av|