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

SpringCloud之LoadBalancer負載均衡服務調用過程

 更新時間:2025年03月24日 15:38:51   作者:夢塵(0_O)  
這篇文章主要介紹了SpringCloud之LoadBalancer負載均衡服務調用過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

LoadBalancer是Ribbon的未來替換方案

一、LoadBalancer是什么?

LB負載均衡(Load Balance)是什么

  • 簡單的說就是將用戶的請求平攤的分配到多個服務上,從而達到系統(tǒng)的HA(高可用)
  • 常見的負載均衡有軟件Nginx,LVS,硬件 F5等

spring-cloud-starter-loadbalancer組件是什么

  • Spring Cloud LoadBalancer是由SpringCloud官方提供的一個開源的、簡單易用的客戶端負載均衡器,它包含在SpringCloud-commons中用它來替換了以前的Ribbon組件。
  • 相比較于Ribbon,SpringCloud LoadBalancer不僅能夠支持RestTemplate,還支持WebClient(WeClient是Spring Web Flux中提供的功能,可以實現(xiàn)響應式異步請求)

官網(wǎng):http://docs.spring.io/spring-cloud-commons/reference/spring-cloud-commons/loadbalancer.html

客戶端負載和服務端負載區(qū)別:

  • Nginx是服務器負載均衡,客戶端所有請求都會交給nginx,然后由nginx實現(xiàn)轉發(fā)請求,即負載均衡是由服務端實現(xiàn)的。
  • loadbalancer本地負載均衡,在調用微服務接口時候,會在注冊中心上獲取注冊信息服務列表之后緩存到JVM本地,從而在本地實現(xiàn)RPC遠程服務調用技術。

二、使用步驟

1、啟動consul

詳見:SpringCloud--consul服務注冊與發(fā)現(xiàn)、配置管理、配置持久化

2、客戶端加入依賴

<!--loadbalancer-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

3、以服務名稱調用

public static final String PaymentSrv_URL = "http://cloud-payment-service";//服務注冊中心上的微服務名稱
@GetMapping(value = "/consumer/pay/get/info")
private String getInfoByConsul(){
   return restTemplate.getForObject(PaymentSrv_URL + "/pay/get/info", String.class);
}

用restTemplate調用服務時,使用服務名稱調用后,在consul中注冊相同服務名稱的的服務會通過loadbalancer實現(xiàn)負載均衡,使得每個相同服務名稱的服務被訪問的次數(shù)平均。

三、負載均衡算法替換

1、 默認算法輪詢(相同服務名下的所有服務枚舉調用)

  • restTemplate配置:
@Configuration
public class RestTemplateConfig {
    @Bean
    @LoadBalanced //按服務名稱調用時默認負載均衡 要加上該注解支持負載均衡
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

2、替換隨機算法(相同服務名下的所有服務隨機調用)

  • restTemplate配置:
@Configuration
@LoadBalancerClient(
        //下面的value值大小寫一定要和consul里面的名字一樣,必須一樣
        value = "cloud-payment-service",configuration = RestTemplateConfig.class)
public class RestTemplateConfig
{
    @Bean
    @LoadBalanced //使用@LoadBalanced注解賦予RestTemplate負載均衡的能力
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

    @Bean
    ReactorLoadBalancer<ServiceInstance> randomLoadBalancer(Environment environment,
                                                            LoadBalancerClientFactory loadBalancerClientFactory) {
        String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);

        return new RandomLoadBalancer(loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name);
    }
}

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Spring?Security短信驗證碼實現(xiàn)詳解

    Spring?Security短信驗證碼實現(xiàn)詳解

    本文主要介紹了Spring?Security短信驗證碼的實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-11-11
  • SpringBoot整合Spring Data Elasticsearch的過程詳解

    SpringBoot整合Spring Data Elasticsearch的過程詳解

    這篇文章主要介紹了SpringBoot整合Spring Data Elasticsearch的過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Java?Stream?流中?Collectors.toMap?的用法詳解

    Java?Stream?流中?Collectors.toMap?的用法詳解

    這篇文章主要介紹了Stream?流中?Collectors.toMap?的用法,Collectors.toMap()方法是把List轉Map的操作,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • Java獲取請求頭信息的操作步驟

    Java獲取請求頭信息的操作步驟

    這篇文章主要介紹了Java獲取請求頭信息,本文分步驟結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • java銀行管理系統(tǒng)源碼

    java銀行管理系統(tǒng)源碼

    這篇文章主要為大家詳細介紹了java銀行管理系統(tǒng)源碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 通過代碼實例深入解析Java重寫和重載

    通過代碼實例深入解析Java重寫和重載

    這篇文章主要介紹了通過代碼實例深入解析Java重寫和重載,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot+Mybatis-plus實現(xiàn)分頁查詢的示例代碼

    SpringBoot+Mybatis-plus實現(xiàn)分頁查詢的示例代碼

    本文主要介紹了SpringBoot+Mybatis-plus實現(xiàn)分頁查詢的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-02-02
  • 基于Spring Boot保護Web應用程序

    基于Spring Boot保護Web應用程序

    這篇文章主要介紹了基于Spring Boot保護Web應用程序,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • JAVA內部類示例詳解及練習

    JAVA內部類示例詳解及練習

    這篇文章主要為大家詳細介紹了Java的內部類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • knife4j3.0.3整合gateway和注冊中心的詳細過程

    knife4j3.0.3整合gateway和注冊中心的詳細過程

    這篇文章主要介紹了knife4j3.0.3整合gateway和注冊中心的詳細過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03

最新評論

濮阳市| 钟祥市| 邻水| 马山县| 汝阳县| 平凉市| 闸北区| 大荔县| 七台河市| 长治县| 建水县| 白朗县| 阜新市| 大埔区| 宜阳县| 张家口市| 曲松县| 孝昌县| 平远县| 舒兰市| 岳西县| 中山市| 读书| 克东县| 马龙县| 忻城县| 汨罗市| 连城县| 台江县| 独山县| 枝江市| 镇江市| 香河县| 大港区| 武功县| 新乡县| 汕尾市| 太仆寺旗| 西吉县| 德钦县| 津市市|