最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

Ribbon是一個客戶端負(fù)載均衡器,它提供了對HTTP和TCP客戶端的行為的大量控制。我們在上篇(猛戳:SpringCloud系列——Feign 服務(wù)調(diào)用)已經(jīng)實現(xiàn)了多個服務(wù)之間的Feign調(diào)用,服務(wù)消費者調(diào)用服務(wù)提供者,本文記錄Feign調(diào)用Ribbon負(fù)載均衡的服務(wù)提供者

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

服務(wù)提供者

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

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)建內(nèi)部類

@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對應(yīng)位置的server
//    return new WeightedResponseTimeRule(); //分配策略:根據(jù)響應(yīng)時間分配一個weight(權(quán)重),響應(yīng)時間越長,weight越小,被選中的可能性越低
//    return new ZoneAvoidanceRule(); //分配策略:復(fù)合判斷server所在區(qū)域的性能和server的可用性選擇server
//    return new RetryRule(); //分配策略:對選定的負(fù)載均衡策略機上重試機制,在一個配置時間段內(nèi)當(dāng)選擇server不成功,則一直嘗試使用subRule的方式選擇一個可用的server
  }

  @Bean
  public IPing ribbonPing() {
    return new PingUrl();
  }

  @Bean
  public ServerListSubsetFilter serverListFilter() {
    ServerListSubsetFilter filter = new ServerListSubsetFilter();
    return filter;
  }

}

下表顯示了Spring Cloud Netflix默認(rèn)為Ribbon提供的bean:

官網(wǎng)例子:

我們添加一個測試接口

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

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

}

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

服務(wù)消費者

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

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

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

效果

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

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

另一個是服務(wù)消費者(Feign調(diào)用);

消費者不斷調(diào)用,Ribbon會從注冊中心的服務(wù)列表拉取實例集合進(jìn)行負(fù)載均衡調(diào)用背后的服務(wù)提供者

后記

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于SpringBoot改動后0.03秒啟動的問題

    關(guān)于SpringBoot改動后0.03秒啟動的問題

    這篇文章主要介紹了SpringBoot改動后0.03秒啟動,本文結(jié)合示例代碼給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • 淺析Java中的繼承與組合

    淺析Java中的繼承與組合

    本文將介紹組合和繼承的概念及區(qū)別,并從多方面分析在寫代碼時如何進(jìn)行選擇。文中通過示例代碼介紹的很詳細(xì),有需要的朋友可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • SpringCloud微服務(wù)熔斷器使用詳解

    SpringCloud微服務(wù)熔斷器使用詳解

    這篇文章主要介紹了Spring Cloud Hyxtrix的基本使用,它是Spring Cloud中集成的一個組件,在整個生態(tài)中主要為我們提供服務(wù)隔離,服務(wù)熔斷,服務(wù)降級功能,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 基于 SpringBoot 實現(xiàn) MySQL 讀寫分離的問題

    基于 SpringBoot 實現(xiàn) MySQL 讀寫分離的問題

    這篇文章主要介紹了基于 SpringBoot 實現(xiàn) MySQL 讀寫分離的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • java web項目里ehcache.xml介紹

    java web項目里ehcache.xml介紹

    java web項目里ehcache.xml介紹,需要的朋友可以參考一下
    2013-03-03
  • java 學(xué)習(xí)筆記(入門篇)_java的安裝與配置

    java 學(xué)習(xí)筆記(入門篇)_java的安裝與配置

    學(xué)習(xí)Java已經(jīng)很長時間了,由于基礎(chǔ)不好遇到問題就無從下手,所以,打算寫Java的隨手筆記來鞏固基礎(chǔ),加強學(xué)習(xí),接下來講解java的安裝,配置等,感興趣的朋友可以參考下
    2013-01-01
  • springboot?sleuth?日志跟蹤問題記錄

    springboot?sleuth?日志跟蹤問題記錄

    Spring?Cloud?Sleuth是一個在應(yīng)用中實現(xiàn)日志跟蹤的強有力的工具,使用Sleuth庫可以應(yīng)用于計劃任務(wù)?、多線程服務(wù)或復(fù)雜的Web請求,尤其是在一個由多個服務(wù)組成的系統(tǒng)中,這篇文章主要介紹了springboot?sleuth?日志跟蹤,需要的朋友可以參考下
    2023-07-07
  • 關(guān)于批量插入或更新數(shù)據(jù)(MyBatis-plus框架)

    關(guān)于批量插入或更新數(shù)據(jù)(MyBatis-plus框架)

    這篇文章主要介紹了關(guān)于批量插入或更新數(shù)據(jù)(MyBatis-plus框架),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java Swing JPasswordField密碼框的實現(xiàn)示例

    Java Swing JPasswordField密碼框的實現(xiàn)示例

    這篇文章主要介紹了Java Swing JPasswordField密碼框的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Java BigDecimal除法精度和格式化輸出方式

    Java BigDecimal除法精度和格式化輸出方式

    這篇文章主要介紹了Java BigDecimal除法精度和格式化輸出方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論

蓝山县| 环江| 阳朔县| 玛曲县| 涿州市| 乌拉特中旗| 思茅市| 洞头县| 班玛县| 古交市| 济南市| 小金县| 和田市| 南宁市| 内丘县| 吕梁市| 乌兰县| 伊宁市| 武夷山市| 临江市| 永吉县| 岑巩县| 卢龙县| 石门县| 定州市| 百色市| 迁安市| 承德市| 三门峡市| 莱芜市| 含山县| 吉隆县| 肇东市| 惠东县| 白朗县| 滕州市| 海淀区| 宾川县| 神农架林区| 深州市| 新宁县|