亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringCloud Ribbon 負載均衡的實現(xiàn)

 更新時間:2019年01月11日 09:26:23   作者:huanzi-qch  
Ribbon是一個客戶端負載均衡器,它提供了對HTTP和TCP客戶端的行為的大量控制。這篇文章主要介紹了SpringCloud Ribbon 負載均衡的實現(xiàn),感興趣的小伙伴們可以參考一下

前言

Ribbon是一個客戶端負載均衡器,它提供了對HTTP和TCP客戶端的行為的大量控制。我們在上篇(猛戳:SpringCloud系列——Feign 服務調用)已經實現(xiàn)了多個服務之間的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

 <!-- Ribbon -->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    </dependency>

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

@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(); //分配策略:選擇一個最小的并發(fā)請求的server,逐個考察Server,如果Server被tripped了,則忽略
//    return new RoundRobinRule(); //分配策略:輪詢選擇,輪詢index,選擇index對應位置的server
//    return new WeightedResponseTimeRule(); //分配策略:根據(jù)響應時間分配一個weight(權重),響應時間越長,weight越小,被選中的可能性越低
//    return new ZoneAvoidanceRule(); //分配策略:復合判斷server所在區(qū)域的性能和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:

官網例子:

我們添加一個測試接口

@RestController
@RequestMapping("/user")
public class UserController {

  @RequestMapping("/ribbon")
  public String ribbon() {
    return "springdatejpa -- 我的端口是:10088";
  }

}

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

服務消費者

服務消費者使用Feign調用,無需做任何修改,F(xiàn)eign已經使用Ribbon。具體配置請戳:SpringCloud系列——Feign 服務調用

@FeignClient(name = "springdatejpa", path = "/user/")
public interface MyspringbootFeign {

  @RequestMapping("/ribbon")
  String ribbon();
}
/**
   * feign調用
   */
  @GetMapping("feign/ribbon")
  String ribbon(){
    return myspringbootFeign.ribbon();
  }

效果

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

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

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

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

后記

Ribbon負載均衡已經可以實現(xiàn),更多配置請看官方文檔

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

相關文章

  • java 分割csv數(shù)據(jù)的實例詳解

    java 分割csv數(shù)據(jù)的實例詳解

    這篇文章主要介紹了java 分割csv數(shù)據(jù)的實例詳解的相關資料,這里提供了簡單實例,需要的朋友可以參考下
    2017-07-07
  • SpringBoot Bean花式注解方法示例上篇

    SpringBoot Bean花式注解方法示例上篇

    這篇文章主要介紹了SpringBoot Bean花式注解方法,很多時候我們需要根據(jù)不同的條件在容器中加載不同的Bean,或者根據(jù)不同的條件來選擇是否在容器中加載某個Bean
    2023-02-02
  • 學會Java字節(jié)碼指令,成為技術大佬

    學會Java字節(jié)碼指令,成為技術大佬

    Java 字節(jié)碼指令是 JVM 體系中非常難啃的一塊硬骨頭,我估計有些讀者會有這樣的疑惑,“Java 字節(jié)碼難學嗎?我能不能學會???”本文帶領大家一探究竟,幫助大家搞懂java底層代碼如何執(zhí)行
    2021-08-08
  • Java日常練習題,每天進步一點點(40)

    Java日常練習題,每天進步一點點(40)

    下面小編就為大家?guī)硪黄狫ava基礎的幾道練習題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • Json 自定義使用函數(shù)的簡單實例

    Json 自定義使用函數(shù)的簡單實例

    下面小編就為大家?guī)硪黄狫son 自定義使用函數(shù)的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • IDEA 自動生成 JPA 實體類的圖文教程

    IDEA 自動生成 JPA 實體類的圖文教程

    這篇文章主要介紹了IDEA 自動生成 JPA 實體類的圖文教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot前端傳遞數(shù)組后端接收兩種常用的方法

    SpringBoot前端傳遞數(shù)組后端接收兩種常用的方法

    這篇文章主要給大家介紹了關于SpringBoot前端傳遞數(shù)組后端接收兩種常用的方法,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-04-04
  • Spring整合Quartz實現(xiàn)動態(tài)定時器的示例代碼

    Spring整合Quartz實現(xiàn)動態(tài)定時器的示例代碼

    本篇文章主要介紹了Spring整合Quartz實現(xiàn)動態(tài)定時器的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • 2022最新Java泛型詳解(360度無死角介紹)

    2022最新Java泛型詳解(360度無死角介紹)

    Java泛型(generics)是JDK5中引入的一個新特性,泛型提供了 編譯時類型安全監(jiān)測機制,該機制允許我們在編譯時檢測到非法的類型數(shù)據(jù)結構,這篇文章主要介紹了java泛型的基本概念及使用詳解,感興趣的朋友跟隨小編一起看看吧
    2022-10-10
  • SpringBoot使用Jasypt對配置文件和數(shù)據(jù)庫密碼加密

    SpringBoot使用Jasypt對配置文件和數(shù)據(jù)庫密碼加密

    在做數(shù)據(jù)庫敏感信息保護時,應加密存儲,本文就來介紹一下SpringBoot使用Jasypt對配置文件和數(shù)據(jù)庫密碼加密,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02

最新評論