激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - SpringCloud Ribbon 負載均衡的實現

SpringCloud Ribbon 負載均衡的實現

2021-07-01 14:48huanzi-qch Java教程

Ribbon是一個客戶端負載均衡器,它提供了對HTTP和TCP客戶端的行為的大量控制。這篇文章主要介紹了SpringCloud Ribbon 負載均衡的實現,感興趣的小伙伴們可以參考一下

前言

ribbon是一個客戶端負載均衡器,它提供了對http和tcp客戶端的行為的大量控制。我們在上篇(猛戳:springcloud系列——feign 服務調用)已經實現了多個服務之間的feign調用,服務消費者調用服務提供者,本文記錄feign調用ribbon負載均衡的服務提供者

github地址:https://github.com/netflix/ribbon

官方文檔:https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.1.0.rc2/single/spring-cloud-netflix.html

服務提供者

服務提供者有兩個,實際上可以看做只有一個,因為這兩個只有端口不同

maven引入ribbon

?
1
2
3
4
5
<!-- ribbon -->
   <dependency>
     <groupid>org.springframework.cloud</groupid>
     <artifactid>spring-cloud-starter-netflix-ribbon</artifactid>
   </dependency>

創建ribbonconfig文件,主類添加@ribbonclient(name = "ribbonconfig", configuration = ribbonconfig.class),我這里偷懶,直接在主類中創建內部類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@enableeurekaclient
@ribbonclient(name = "ribbonconfig", configuration = ribbonconfig.class)
@springbootapplication
public class springbootspringdatajpaapplication{
 
  public static void main(string[] args) {
    springapplication.run(springbootspringdatajpaapplication.class, args);
  }
}
 
@configuration
class ribbonconfig {
 
  @bean
  public irule ribbonrule(){
    return new randomrule(); //分配策略:隨機選擇一個server
//    return new bestavailablerule(); //分配策略:選擇一個最小的并發請求的server,逐個考察server,如果server被tripped了,則忽略
//    return new roundrobinrule(); //分配策略:輪詢選擇,輪詢index,選擇index對應位置的server
//    return new weightedresponsetimerule(); //分配策略:根據響應時間分配一個weight(權重),響應時間越長,weight越小,被選中的可能性越低
//    return new zoneavoidancerule(); //分配策略:復合判斷server所在區域的性能和server的可用性選擇server
//    return new retryrule(); //分配策略:對選定的負載均衡策略機上重試機制,在一個配置時間段內當選擇server不成功,則一直嘗試使用subrule的方式選擇一個可用的server
  }
 
  @bean
  public iping ribbonping() {
    return new pingurl();
  }
 
  @bean
  public serverlistsubsetfilter serverlistfilter() {
    serverlistsubsetfilter filter = new serverlistsubsetfilter();
    return filter;
  }
 
}

下表顯示了spring cloud netflix默認為ribbon提供的bean:

SpringCloud Ribbon 負載均衡的實現

官網例子:

SpringCloud Ribbon 負載均衡的實現

我們添加一個測試接口

?
1
2
3
4
5
6
7
8
9
10
@restcontroller
@requestmapping("/user")
public class usercontroller {
 
  @requestmapping("/ribbon")
  public string ribbon() {
    return "springdatejpa -- 我的端口是:10088";
  }
 
}

第二個服務提供者也是這樣配置,注意:應用名要相同(spring.application.name=springdatejpa);端口不同;

服務消費者

服務消費者使用feign調用,無需做任何修改,feign已經使用ribbon。具體配置請戳:springcloud系列——feign 服務調用

?
1
2
3
4
5
6
@feignclient(name = "springdatejpa", path = "/user/")
public interface myspringbootfeign {
 
  @requestmapping("/ribbon")
  string ribbon();
}
?
1
2
3
4
5
6
7
/**
   * feign調用
   */
  @getmapping("feign/ribbon")
  string ribbon(){
    return myspringbootfeign.ribbon();
  }

效果

啟動所有項目,我們注冊了三個服務,其中:

有兩個服務名稱相同、處理的業務相同、端口不同,這兩臺作為服務提供者(可看做是一個“小集群”);

另一個是服務消費者(feign調用);

SpringCloud Ribbon 負載均衡的實現

消費者不斷調用,ribbon會從注冊中心的服務列表拉取實例集合進行負載均衡調用背后的服務提供者

SpringCloud Ribbon 負載均衡的實現

后記

ribbon負載均衡已經可以實現,更多配置請看官方文檔

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/huanzi-qch/p/10136254.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: a视频在线免费观看 | 成人小视频免费在线观看 | 免费在线成人网 | 午夜视频在线观看91 | 免费视频99| 免费看一级片 | 九九热精品在线视频 | 免费毛片视频播放 | 日本精品视频一区二区三区四区 | 看一级大毛片 | 曰韩黄色片 | 久草在线播放视频 | 免费午夜视频在线观看 | 久久这 | 精品一区二区亚洲 | 九九热视频在线免费观看 | 欧美另类综合 | 成年片黄色日本大片网站视频 | 成人男女啪啪免费观看网站四虎 | 美国黄色毛片女人性生活片 | 性片久久 | 亚洲极色 | 国产高潮好爽好大受不了了 | 精品国产一区二区三区久久久狼牙 | 国产成人av免费 | 一本色道久久综合亚洲精品图片 | 精品一区二区久久久久久按摩 | 欧美一区二区三区久久精品视 | 蜜桃传媒视频麻豆第一区免费观看 | 电影一级毛片 | www.91成人| 久久精品视频一区二区三区 | 视频在线色 | 亚洲第一综合色 | 极品五月天 | 特级a欧美做爰片毛片 | 黄色电影免费网址 | 在线观看美女av | 欧美成a人片在线观看久 | 欧美人xx| 欧美一级毛片欧美一级成人毛片 |