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

Java Ribbon負(fù)載均衡詳細(xì)講解

 更新時間:2023年01月30日 10:15:08   作者:像向日葵一樣~  
Ribbon其實就是一個軟負(fù)載均衡的客戶端組件,他可以和其他所需請求的客戶端結(jié)合使用,這篇文章主要介紹了Ribbon負(fù)載均衡服務(wù)調(diào)用案例代碼,需要的朋友可以參考下

介紹

Spring Cloud Ribbon是基于Netflix Ribbon實現(xiàn)的一套客戶端負(fù)載均衡的工具。Ribbon是Netflix發(fā)布的開源項目,主要功能是提供客戶端的軟件負(fù)載均衡算法和服務(wù)調(diào)用。Ribbon客戶端組件提供一系列完善的配置項如連接超時,重試等。

簡單的說,就是在配置文件中列出Load Balancer(簡稱LB)后面所有的機器,Ribbon會自動的幫助你基于某種規(guī)則(如簡單輪詢,隨機連接等)去連接這些機器。我們很容易使用Ribbon實現(xiàn)自定義的負(fù)載均衡算法。其實就是負(fù)載均衡 + RestTemplate調(diào)用 LB負(fù)載均衡(Load Balance)是什么

簡單的說就是將用戶的請求平攤的分配到多個服務(wù)上,從而達(dá)到系統(tǒng)的HA (高可用)。

常見的負(fù)載均衡有軟件Nginx,LVS,硬件F5等。 Ribbon本地負(fù)載均衡客戶端VS Nginx服務(wù)端負(fù)載均衡區(qū)別

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

LB分類

集中式LB

即在服務(wù)的消費方和提供方之間使用獨立的LB設(shè)施(可以是硬件,如F5, 也可以是軟件,如nginx),由該設(shè)施負(fù)責(zé)把訪問請求通過某種策略轉(zhuǎn)發(fā)至服務(wù)的提供方;

進(jìn)程內(nèi)LB

將LB邏輯集成到消費方,消費方從服務(wù)注冊中心獲知有哪些地址可用,然后自己再從這些地址中選擇出一個合適的服務(wù)器。

Ribbon就屬于進(jìn)程內(nèi)LB,它只是一個類庫,集成于消費方進(jìn)程,消費方通過它來獲取到服務(wù)提供方的地址。

Ribbon默認(rèn)自帶的負(fù)載規(guī)則

lRule:根據(jù)特定算法中從服務(wù)列表中選取一個要訪問的服務(wù)

  • RoundRobinRule 輪詢
  • RandomRule 隨機
  • RetryRule 先按照RoundRobinRule的策略獲取服務(wù),如果獲取服務(wù)失敗則在指定時間內(nèi)會進(jìn)行重試
  • WeightedResponseTimeRule 對RoundRobinRule的擴展,響應(yīng)速度越快的實例選擇權(quán)重越大,越容易被選擇
  • BestAvailableRule 會先過濾掉由于多次訪問故障而處于斷路器跳閘狀態(tài)的服務(wù),然后選擇一個并發(fā)量最小的服務(wù)
  • AvailabilityFilteringRule 先過濾掉故障實例,再選擇并發(fā)較小的實例
  • ZoneAvoidanceRule 默認(rèn)規(guī)則,復(fù)合判斷server所在區(qū)域的性能和server的可用性選擇服務(wù)器

Ribbon負(fù)載規(guī)則替換

@Configuration
public class MySelfRule {
    @Bean
    public IRule myRule(){
        return new RandomRule();
    }
}

主啟動類

添加@RibbonClient

@SpringBootApplication
@EnableEurekaClient
@RibbonClient(name = "CLOUD-PAYMENT-SERVICE",configuration = MySelfRule.class)
public class OrderMain {
    public static void main(String[] args) {
        SpringApplication.run(OrderMain.class,args);
    }
}

Ribbon默認(rèn)負(fù)載輪詢算法原理

默認(rèn)負(fù)載輪訓(xùn)算法: rest接口第幾次請求數(shù) % 服務(wù)器集群總數(shù)量 = 實際調(diào)用服務(wù)器位置下標(biāo),每次服務(wù)重啟動后rest接口計數(shù)從1開始。

List<Servicelnstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");

到此這篇關(guān)于Java Ribbon負(fù)載均衡詳細(xì)講解的文章就介紹到這了,更多相關(guān)Java Ribbon 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java的深拷貝與淺拷貝的幾種實現(xiàn)方式

    Java的深拷貝與淺拷貝的幾種實現(xiàn)方式

    這篇文章主要介紹了Java的深拷貝與淺拷貝的幾種實現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • java在運行時能修改工作目錄嗎

    java在運行時能修改工作目錄嗎

    這篇文章主要給大家介紹了關(guān)于java在運行時能修改工作目錄的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Servlet中/和/*的區(qū)別詳解

    Servlet中/和/*的區(qū)別詳解

    本文將分析/和/*的區(qū)別這個老生常談的問題,但是很多時候看完就忘了,關(guān)于此問題這一篇文章就夠了,它將成為你的永久記憶,感興趣的可以了解一下
    2021-07-07
  • Java編程實現(xiàn)漢字按字母順序排序的方法示例

    Java編程實現(xiàn)漢字按字母順序排序的方法示例

    這篇文章主要介紹了Java編程實現(xiàn)漢字按字母順序排序的方法,結(jié)合具體實例形式分析了java編碼轉(zhuǎn)換及字母排序相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • maven導(dǎo)入本地倉庫jar包,報:Could?not?find?artifact的解決

    maven導(dǎo)入本地倉庫jar包,報:Could?not?find?artifact的解決

    這篇文章主要介紹了maven導(dǎo)入本地倉庫jar包,報:Could?not?find?artifact的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 解決Java處理HTTP請求超時的問題

    解決Java處理HTTP請求超時的問題

    這篇文章主要介紹了解決Java處理HTTP請求超時的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Spring中BeanUtils.copyProperties的坑及解決

    Spring中BeanUtils.copyProperties的坑及解決

    這篇文章主要介紹了Spring中BeanUtils.copyProperties的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java Spring Boot消息服務(wù)萬字詳解分析

    Java Spring Boot消息服務(wù)萬字詳解分析

    在實際項目開發(fā)中,有時需要與其他系統(tǒng)進(jìn)行集成完成相關(guān)業(yè)務(wù)功能,這種情況最原始做法是程序內(nèi)部相互調(diào)用,除此之外,還可以用消息服務(wù)中間件進(jìn)行業(yè)務(wù)處理,用消息服務(wù)中間件處理業(yè)務(wù)能夠提升系統(tǒng)的異步通信和擴展解耦能力。Spring Boot對消息服務(wù)管理提供了非常好的支持
    2021-10-10
  • Java9 Stream Collectors新增功能(小結(jié))

    Java9 Stream Collectors新增功能(小結(jié))

    這篇文章主要介紹了Java9 Stream Collectors新增功能(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Java?Swing實現(xiàn)掃雷源碼

    Java?Swing實現(xiàn)掃雷源碼

    這篇文章主要為大家詳細(xì)介紹了Java?Swing實現(xiàn)掃雷源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06

最新評論