欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

Ribbon是一個(gè)客戶端負(fù)載均衡器,它提供了對HTTP和TCP客戶端的行為的大量控制。我們在上篇(猛戳:SpringCloud系列——Feign 服務(wù)調(diào)用)已經(jīng)實(shí)現(xiàn)了多個(gè)服務(wù)之間的Feign調(diào)用,服務(wù)消費(fèi)者調(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ù)提供者有兩個(gè),實(shí)際上可以看做只有一個(gè),因?yàn)檫@兩個(gè)只有端口不同

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(); //分配策略:隨機(jī)選擇一個(gè)server
//    return new BestAvailableRule(); //分配策略:選擇一個(gè)最小的并發(fā)請求的server,逐個(gè)考察Server,如果Server被tripped了,則忽略
//    return new RoundRobinRule(); //分配策略:輪詢選擇,輪詢index,選擇index對應(yīng)位置的server
//    return new WeightedResponseTimeRule(); //分配策略:根據(jù)響應(yīng)時(shí)間分配一個(gè)weight(權(quán)重),響應(yīng)時(shí)間越長,weight越小,被選中的可能性越低
//    return new ZoneAvoidanceRule(); //分配策略:復(fù)合判斷server所在區(qū)域的性能和server的可用性選擇server
//    return new RetryRule(); //分配策略:對選定的負(fù)載均衡策略機(jī)上重試機(jī)制,在一個(gè)配置時(shí)間段內(nèi)當(dāng)選擇server不成功,則一直嘗試使用subRule的方式選擇一個(gè)可用的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)例子:

我們添加一個(gè)測試接口

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

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

}

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

服務(wù)消費(fèi)者

服務(wù)消費(fèi)者使用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();
  }

效果

啟動(dòng)所有項(xiàng)目,我們注冊了三個(gè)服務(wù),其中:

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

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

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

后記

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

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

相關(guān)文章

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

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

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

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

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

    學(xué)會(huì)Java字節(jié)碼指令,成為技術(shù)大佬

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

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(40)

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

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

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

    IDEA 自動(dòng)生成 JPA 實(shí)體類的圖文教程

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

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

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

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

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

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

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

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

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

最新評論