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

Springcloud ribbon負(fù)載均衡算法實(shí)現(xiàn)

 更新時(shí)間:2020年04月20日 15:09:01   作者:以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。  
這篇文章主要介紹了Springcloud ribbon負(fù)載均衡算法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一 前言

經(jīng)過幾篇的cloud系列文章,我想大家都有一個(gè)堅(jiān)實(shí)的基礎(chǔ),后續(xù)的學(xué)習(xí)就會輕松很多,如果是剛剛來看的讀者需要有eureka基礎(chǔ)知識,或者查閱知識追尋者的cloud系列專欄;這篇文章主要講解如何使用ribbon實(shí)現(xiàn)web service客戶端調(diào)用,ribbon默認(rèn)算法實(shí)現(xiàn)負(fù)載均衡等!

二 ribbon簡介

ribbon是一個(gè)客戶端負(fù)載均衡器,其能夠整合不同的協(xié)議工具進(jìn)行web service API 調(diào)用;

主要特色如下:

提供可插拔式的負(fù)載均衡整合服務(wù)發(fā)現(xiàn)故障彈性恢復(fù)cloud支持客戶端整合加載負(fù)載均衡

核心工程如下:

ribbon-core:整合其他模塊實(shí)現(xiàn)負(fù)載均衡

ribbon-eureka: 基于 eureka client 實(shí)現(xiàn) 負(fù)載均衡

ribbon-httpclient: 包括JSR-311 實(shí)現(xiàn)REST 加載負(fù)載均衡

三 eureka-client

在之前的 eureka-client工程中創(chuàng)建controller包,并提供表現(xiàn)層接口,代碼如下,然后啟動eureka-client實(shí)例2個(gè),分別為8090端口,8091端口;

/**
 * @Author lsc
 * <p> 知識追尋者,ribbon provider the restful api</p>
 */
@RestController
public class RibbonProvidderController {


  @GetMapping("zszxz/ribbon")
  public String testRibbon(){
    return "hell i am zszxz";
  }
}

四 ribbon-client

4.1 pom.xml

在父工程低下添加新模塊 ribbon-client;原來的start-web依賴在父工程中已經(jīng)引入,故ribbon模塊中不會再次引入該依賴;

  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-ribbon</artifactId>
    </dependency>
  </dependencies>

4.2 config

使用restTemplate進(jìn)行客戶端調(diào)用,故需要進(jìn)行配置,并且在方法上加 @LoadBalanced 注解表示開啟ribbon負(fù)載均衡;

/**
 * @Author lsc
 * <p> ribbon-restTemplate配置 </p>
 */
@Configuration
public class RibbonConfig {

  @Bean
  @LoadBalanced//表示用于負(fù)載均衡
  RestTemplate restTemplate(){
    return new RestTemplate();
  }
}

4.3 service

創(chuàng)建service類,并且使用restTemplate進(jìn)行HTTP API 調(diào)用;注意點(diǎn)是這邊不使用ip端口,而是直接使用服務(wù)的應(yīng)用名稱 eureka-client ;

/**
 * @Author lsc
 * <p> </p>
 */
@Service
public class RibbonService {

  @Autowired
  RestTemplate restTemplate;


  public String testRibbon(){
    return restTemplate.getForObject("http://eureka-client/zszxz/ribbon",String.class);
  }
}

4.4 controller

創(chuàng)建表現(xiàn)層類, 用于瀏覽器訪問;

/**
 * @Author lsc
 * <p> </p>
 */
@RestController
public class RibbonController {

  @Autowired
  RibbonService ribbonService;

  @GetMapping("ribbon/test")
  public String testRibbon(){
    return ribbonService.testRibbon();
  }
} 

4.5 ribbon啟動類

ribbon的啟動類也是作為 eureka 的客戶端故需要加上@EnableEurekaClient注解;

/**
 * @Author lsc
 * <p>知識追尋者 ribbon啟動類 </p>
 */
@SpringBootApplication
@EnableEurekaClient
public class RibbonApp {

  public static void main(String[] args) {
    SpringApplication.run(RibbonApp.class,args);
  }
}

4.6 application.yml

application.yml 配置中使用端口8092,服務(wù)注冊地址分別是peer1,peer2,peer3;

server:
 port: 8092
spring:
 application:
  name: eureka-ribbon # 應(yīng)用名稱
eureka:
 client:
  service-url:
   # 服務(wù)注冊地址
   defaultZone: http://peer1:10081/eureka/,http://peer2:10082/eureka/,http://peer3:10083/eureka/

4.7 啟動工程

分別啟動 client ,server ; 如下圖

4.8 瀏覽器訪問結(jié)果

瀏覽器結(jié)果如下,說明我們在 eureka-ribbon 中使用 restTemplate 結(jié)合 ribbon 實(shí)現(xiàn)了HTTP 方式從 eureka-clinet 模塊中調(diào)用API;

五 ribbon默認(rèn)負(fù)載均衡

LoadBalancerClient 是 ribbon 的一個(gè)核心類,其能夠獲得 ribbon提供負(fù)載均衡的實(shí)例信息;在 ribbon-client模塊中的controller層添加 方法 ,方法主體是獲得實(shí)例的端口和主機(jī);以便于于我們分析ribbon負(fù)載均衡算法;

  @Autowired
  LoadBalancerClient loadBalanced;

  @GetMapping("ribbon")
  public String ribbon(){
    ServiceInstance choose = loadBalanced.choose("eureka-client");
    String s = "host is :" + choose.getHost() + " port is :" + choose.getPort();
    System.out.println(s);
    return s;
  }

重啟ribbon-client 工程,使用瀏覽器訪問,控制臺輸出如下,分別調(diào)用了8090,8091兩個(gè) eureka-client實(shí)例API,說明ribbon默認(rèn)的負(fù)載均衡機(jī)制是輪詢算法;

host is :peer1 port is :8091
host is :peer1 port is :8090
host is :peer1 port is :8091
host is :peer1 port is :8090
host is :peer1 port is :8091
host is :peer1 port is :8090
host is :peer1 port is :8091
host is :peer1 port is :8090

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

相關(guān)文章

  • SpringBoot模擬實(shí)現(xiàn)流式輸出效果

    SpringBoot模擬實(shí)現(xiàn)流式輸出效果

    這篇文章主要為大家詳細(xì)介紹了如何使用SpringBoot模擬實(shí)現(xiàn)流式輸出效果,并在前端使用流式接收數(shù)據(jù)并打印,感興趣的小伙伴可以參考一下
    2025-03-03
  • Spring Boot編寫攔截器教程實(shí)例解析

    Spring Boot編寫攔截器教程實(shí)例解析

    這篇文章主要介紹了Spring Boot編寫攔截器教程實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Springboot Mybatis Plus自動生成工具類詳解代碼

    Springboot Mybatis Plus自動生成工具類詳解代碼

    mybatis-plus 是一個(gè) Mybatis 的增強(qiáng)工具,在 Mybatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生,這篇文章帶你使用Springboot Mybatis Plus自動生成工具類
    2021-11-11
  • Java 確保某個(gè)Bean類被最后執(zhí)行的幾種實(shí)現(xiàn)方式

    Java 確保某個(gè)Bean類被最后執(zhí)行的幾種實(shí)現(xiàn)方式

    這篇文章主要介紹了Java 確保某個(gè)BeanDefinitionRegistryPostProcessor Bean被最后執(zhí)行的幾種實(shí)現(xiàn)方式,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • Java生成含字母和數(shù)字的6位隨機(jī)字符串

    Java生成含字母和數(shù)字的6位隨機(jī)字符串

    這篇文章主要為大家詳細(xì)介紹了Java生成含字母和數(shù)字的6位隨機(jī)字符串的相關(guān)資料,供大家參考,感興趣的朋友可以參考一下
    2016-05-05
  • Java設(shè)計(jì)模式以虹貓藍(lán)兔的故事講解裝飾器模式

    Java設(shè)計(jì)模式以虹貓藍(lán)兔的故事講解裝飾器模式

    裝飾器模式又名包裝(Wrapper)模式。裝飾器模式以對客戶端透明的方式拓展對象的功能,是繼承關(guān)系的一種替代方案,本篇文章以虹貓藍(lán)兔生動形象的為你帶來詳細(xì)講解
    2022-04-04
  • 一篇文章帶你入門Java基本概念

    一篇文章帶你入門Java基本概念

    本文主要介紹了Java編程的基本概念基本概念,可以幫助我們更加深刻的所要講解的Java命令,具有很好的參考價(jià)值。下面跟著小編一起來看下吧,希望能給你帶來幫助
    2021-08-08
  • Java8中Optional類的使用說明

    Java8中Optional類的使用說明

    Optional類主要解決的問題是臭名昭著的空指針異常(NullPointerException),每個(gè)Java程序員都非常了解的異常,這篇文章主要給大家介紹了關(guān)于Java8中Optional類使用的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Java超詳細(xì)教你寫一個(gè)銀行存款系統(tǒng)案例

    Java超詳細(xì)教你寫一個(gè)銀行存款系統(tǒng)案例

    這篇文章主要介紹了怎么用Java來寫一個(gè)銀行的存款系統(tǒng),銀行存款主要有賬號和存款金額兩個(gè)屬性,感興趣的朋友跟隨文章往下看看吧
    2022-03-03
  • Java Swing組件編程之JTable表格用法實(shí)例詳解

    Java Swing組件編程之JTable表格用法實(shí)例詳解

    這篇文章主要介紹了Java Swing組件編程之JTable表格用法,結(jié)合實(shí)例形式詳細(xì)分析了Swing組件中JTable表格的常見定義與使用方法,需要的朋友可以參考下
    2017-11-11

最新評論

花莲县| 册亨县| 台中市| 成安县| 乌鲁木齐市| 义马市| 金堂县| 德令哈市| 盘山县| 疏附县| 靖州| 合水县| 成安县| 福海县| 宕昌县| 澄迈县| 南木林县| 厦门市| 五指山市| 深圳市| 资兴市| 宣恩县| 稻城县| 通许县| 乐平市| 青浦区| 彩票| 布尔津县| 石首市| 浙江省| 渝北区| 呼玛县| 永仁县| 湖北省| 右玉县| 武隆县| 隆尧县| 寿宁县| 宝兴县| 陈巴尔虎旗| 漯河市|