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

SpringCloud之LoadBalancer負(fù)載均衡服務(wù)調(diào)用過程

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

前言

LoadBalancer是Ribbon的未來替換方案

一、LoadBalancer是什么?

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

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

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

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

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

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

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

二、使用步驟

1、啟動consul

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

2、客戶端加入依賴

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

3、以服務(wù)名稱調(diào)用

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

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

三、負(fù)載均衡算法替換

1、 默認(rèn)算法輪詢(相同服務(wù)名下的所有服務(wù)枚舉調(diào)用)

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

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

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

總結(jié)

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

相關(guān)文章

  • java實現(xiàn)微信公眾號發(fā)送模版消息

    java實現(xiàn)微信公眾號發(fā)送模版消息

    這篇文章以訂單推送為例,主要為大家詳細(xì)介紹了java實現(xiàn)微信公眾號發(fā)送模版消息,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 解析SpringSecurity+JWT認(rèn)證流程實現(xiàn)

    解析SpringSecurity+JWT認(rèn)證流程實現(xiàn)

    這篇文章主要介紹了解析SpringSecurity+JWT認(rèn)證流程實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • java+io+swing實現(xiàn)學(xué)生信息管理系統(tǒng)

    java+io+swing實現(xiàn)學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java+io+swing實現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Flowable數(shù)據(jù)庫表分類及數(shù)據(jù)字典解析

    Flowable數(shù)據(jù)庫表分類及數(shù)據(jù)字典解析

    這篇文章主要介紹了Flowable數(shù)據(jù)庫表分類及數(shù)據(jù)字典解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java編程中最基礎(chǔ)的文件和目錄操作方法詳解

    Java編程中最基礎(chǔ)的文件和目錄操作方法詳解

    這篇文章主要介紹了Java編程中最基礎(chǔ)的文件和目錄操作方法詳解,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • 談?wù)凥ashmap的容量為什么是2的冪次問題

    談?wù)凥ashmap的容量為什么是2的冪次問題

    這篇文章主要介紹了談?wù)凥ashmap的容量為什么是2的冪次問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 面試必時必問的JVM 類加載機制詳解

    面試必時必問的JVM 類加載機制詳解

    這篇文章主要介紹了一文讀懂Jvm類加載機制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-08-08
  • Java中Hashtable集合的常用方法詳解

    Java中Hashtable集合的常用方法詳解

    本篇文章給大家?guī)淼膬?nèi)容是關(guān)于Java中Hashtable集合的常用方法詳解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。下面我們就來學(xué)習(xí)一下吧
    2021-11-11
  • JAVA OutputStreamWriter流的實現(xiàn)

    JAVA OutputStreamWriter流的實現(xiàn)

    OutputStreamWriter是從字符流到字節(jié)流的橋接,它使用的字符集可以通過名稱指定,也可以明確指定,或者可以接受平臺的默認(rèn)字符集,本文詳細(xì)的介紹了JAVA OutputStreamWriter流的使用,感興趣的可以了解一下
    2021-06-06
  • Java中StringBuilder字符串類型的操作方法及API整理

    Java中StringBuilder字符串類型的操作方法及API整理

    Java中的StringBuffer類繼承于AbstractStringBuilder,用來創(chuàng)建非線程安全的字符串類型對象,下面即是對Java中StringBuilder字符串類型的操作方法及API整理
    2016-05-05

最新評論