日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springcloud----负载均衡--Ribbon与LoadBalance

發(fā)布時間:2024/9/20 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springcloud----负载均衡--Ribbon与LoadBalance 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡介
Spring Cloud Ribbon 是 Netflix Ribbon 實現(xiàn)的一套客戶端 負(fù)載均衡工具

簡單的說,Ribbon 是 Netflix 發(fā)布的開源項目,主要功能是提供 客戶端的復(fù)雜均衡算法和服務(wù)調(diào)用。 Ribbon 客戶端組件提供一系列完善的配置項如超時、重試等。簡單的說,就是配置文件中列出 load Balancer (簡稱 LB)后面所有的機器,Ribbon 會自動的幫助你基于某種規(guī)則(如簡單輪詢,隨機鏈接等)去鏈接這些機器。我們很容易使用 Ribbon 自定義的負(fù)載均衡算法。

Ribbon官網(wǎng):https://github.com/Netflix/ribbon

狀態(tài) - 停更進(jìn)維
替代方案 - Spring Cloud Loadbalancer
功能
LB 負(fù)載均衡(Load Balance)是什么
簡單的說就是將用戶的請求平攤的分配到多個服務(wù)上,從而達(dá)到系統(tǒng)的HA(高可用)

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 實現(xiàn)方式
1、集中式
即在服務(wù)的消費方和提供方之間使用獨立的LB 設(shè)施(可以是硬件,如F5, 也可以是軟件如 Nginx ), 由該設(shè)置負(fù)責(zé)把訪問請求通過某種策略轉(zhuǎn)發(fā)至服務(wù)的提供方

2、進(jìn)程內(nèi) LB
將 LB 邏輯集成到消費方,消費方從服務(wù)注冊中心獲取有哪些地址可用,然后自己再從這些地址中選擇一個適合的服務(wù)器。
Ribbon 就屬于進(jìn)程內(nèi)LB,它只是一個類庫,集成于消費方進(jìn)程,消費方通過它阿萊獲取服務(wù)提供方的地址。

總結(jié):
Ribbon 其實就是一個軟負(fù)載均衡的客戶端組件,他可以和其他所需請求的客戶端結(jié)合使用,和eureka結(jié)合只是其中的一個實例
HA (高可用)

Ribbon 在工作時分為兩步:
第一步先選擇 Server , 它優(yōu)先選擇在同一個區(qū)域呢負(fù)載較少的Server

第二步在根據(jù)用戶執(zhí)行的策略,在從server 取到的服務(wù)注冊列表中選擇一個地址。

其中 Ribbon 提供了多種策略:比如輪詢、隨機和根據(jù)響應(yīng)時間加權(quán)。

(測試使用Eureka做服務(wù)注冊 ) 不需要額外導(dǎo)入依賴 ,在 spring-cloud-starter-netflix-eureka-client 自帶 spring-cloud-starter-ribbon

使用方式:@LoadBalance + RestTemplate
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
? ? return ?new RestTemplate() ;
}
1
2
3
4
5
賦予RestTemplate 有負(fù)載均衡的能力 也是使用的 ribbon

指定負(fù)載均衡的方式
Ribbon 核心組件IRule : com.netflix.loadbalancer.IRule
相關(guān)的負(fù)載均衡算法 , 均在 com.netflix.loadbalancer 包下

全類名?? ?說明
RoundRobinRule?? ?輪詢
RandomRule?? ?隨機
RetryRule?? ?先按照RoundRobinRule的策略獲取服務(wù),如果獲取服務(wù)失敗則在指定時間內(nèi)會進(jìn)行重試,獲取可用的服務(wù)
WeightedResponseTimeRule?? ?對RoundRobinRule 的拓展,響應(yīng)速度越快的實例選擇權(quán)重越大,越容易被選擇
BestAvailableRule?? ?會先過濾掉由于多次訪問故障而處斷路器跳閘狀態(tài)的服務(wù),然后選擇一個并發(fā)量最小的服務(wù)
AvailabilityFilteringRule?? ?先過濾掉故障實例,在選擇并發(fā)較小的實例
ZoneAvoidanceRule?? ?默認(rèn)規(guī)則,符合判斷Server 所在區(qū)域的性能和 Server 的可用性選擇服務(wù)器
指定負(fù)載均衡(在全局Main方法外面建立一個包寫 , 不能讓springboot掃描 , 不然會全局使用該方法)
@Configuration
public class MySelfRule {
? ?@Bean
? ?public IRule myRule(){
? ? ? ?return new RandomRule() ; ?
? ?}
}
1
2
3
4
5
6
7
@SpringBootApplication
@EnableEurekaClient
@RibbonClient(name = "CLOUD-PAYMENT-SERVICE",configuration = MySelfRule.class)?
// 訪問指定服務(wù),使用指定的負(fù)載均衡算法
public class OrderMain80 {
? ?public static void main(String[] args){
? ? ? ?SpringApplication.run(OrderMain80.class,args) ;
? ?}
}
1
2
3
4
5
6
7
8
9
自定義負(fù)載均衡
負(fù)載均衡算法:rest 接口第幾次請求數(shù) % 服務(wù)器集群總數(shù)量 = 時機調(diào)用服務(wù)器位置下標(biāo),每次服務(wù)重啟后rest 接口技術(shù)求從1開始。

List<ServiceInstance> instances = discoverClient.getInstances("PAYMENT-SERVICE");

如: ?List[0] instances = 127.0.0.1:8002
? ? ? ? ? List[1] instances = 127.0.0.1:8001

8001 + 8002 組合為集群,他們共計2臺服務(wù)器,集群總數(shù)為2 , 按照輪詢算法原理:

當(dāng)請求總數(shù)為1 ?時:1%2 = 1, 對應(yīng)下標(biāo)位置為1, 則獲得服務(wù)地址為 127.0.0.1:8001
當(dāng)請求總數(shù)為2 時:2%2 = 0, 對應(yīng)下標(biāo)位置為1, 則獲得服務(wù)地址為 127.0.0.1:8002
當(dāng)請求總數(shù)為3 時:2%2 = 1, 對應(yīng)下標(biāo)位置為1, 則獲得服務(wù)地址為 127.0.0.1:8001

依次類推 。。。。
1
2
3
4
5
6
7
8
9
10
11
12
1、接口
public interface LandBalance {
? ? ServiceInstance instance(List<ServiceInstance> serviceInstances) ;
}
1
2
3
2、實現(xiàn)
@Component
public class MyLb implements LandBalance {
? ? // 原子類
? ? private AtomicInteger atomicInteger = new AtomicInteger(0) ;
? ? public final int getAndIncrement(){
// ? ? ? ?自旋鎖
? ? ? ? int current ;
? ? ? ? int next ;
? ? ? ? do {
? ? ? ? ? ? current = this.atomicInteger.get() ;
? ? ? ? ? ? next = current >= 2147483647 ? 0 : current + 1 ;
? ? ? ? }while (!this.atomicInteger.compareAndSet(current ,next )) ;
? ? ? ? System.out.println("****訪問次數(shù) next: "+ next );
? ? ? ? return next ;
? ? }
? ? @Override
? ? public ServiceInstance instance(List<ServiceInstance> serviceInstances) {
? ? ? ? int index = ?getAndIncrement() % serviceInstances.size() ;
? ? ? ? return serviceInstances.get(index) ;
? ? }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
3、使用 (restTemplate 上不能有 LoadBalance注解)
@Autowired
private LandBalance landBalance ;
@Autowired
DiscoveryClient discoveryClient ;
? ??
@GetMapping("/consumer/payment/lb")
public String getPaymentLb(){
? ? List<ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");
? ? if (instances == null || instances.size() <= 0 ){
? ? ? ? return ?null ;
? ? }
? ? ServiceInstance instance = landBalance.instance(instances);
? ? URI uri = instance.getUri();
? ?return restTemplate.getForObject(uri+"/payment/lb",String.class) ;
}
————————————————
版權(quán)聲明:本文為CSDN博主「千鈞~」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/getchar97/article/details/105083324

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的springcloud----负载均衡--Ribbon与LoadBalance的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 五月丁香啪啪 | 精品黑人一区二区三区在线观看 | 午夜精品999 | 国产精品一二三级 | 一区二区精品区 | 欧美激情xxxxx| 91美女在线视频 | 日韩成人免费视频 | 亚洲一区二区激情 | 五月婷婷丁香综合 | 日日夜夜操操 | 操欧美老逼 | 97久久久久久久 | 四虎午夜 | 免费一区二区三区 | 无码国模国产在线观看 | 一级视频免费观看 | 成人欧美日韩 | 内射国产内射夫妻免费频道 | 日韩首页 | 久久看片 | 日本wwww视频 | 国产91熟女高潮一区二区 | 美女视频久久久 | 国产女无套免费视频 | 成人中文字幕+乱码+中文字幕 | 手机在线免费视频 | 短视频在线观看 | 精品国产一区二区三区日日嗨 | 福利电影一区 | 亚洲一区二区三区影院 | 久久国产视频一区 | 欧美福利专区 | 久操视频在线播放 | 久久久国产成人 | 五月天国产 | 福利在线视频观看 | 欧美精品毛片 | 国产xxxxxxxxx | 日韩人妻无码精品久久免费 | 国产婷婷在线观看 | 女人被狂躁c到高潮喷水电影 | 一级黄色裸体片 | 午夜精品视频一区 | 国产第20页 | 高潮毛片无遮挡免费看 | 超碰在线视屏 | 特级西西www444人体聚色 | 天堂亚洲 | 国内偷拍av | 雪花飘电影在线观看免费高清 | 精品国精品国产 | 欧洲精品免费一区二区三区 | 日日摸夜夜添狠狠添久久精品成人 | 欧洲自拍偷拍 | 欧美成人久久久免费播放 | 免费视频www在线观看网站 | 神马老子午夜 | 国产免费高清av | 波多野结衣成人在线 | 春闺艳妇(h)高h产乳 | 视频在线观看91 | 哪里可以免费看av | 久久依人| 五月激情四射网 | 欧美福利电影 | 成人免费一级视频 | 久久性片 | 在线亚洲天堂 | 伊人久久成人网 | 野战少妇38p | 久久爱一区二区 | 久久免费一级片 | 国产一区二区三区在线视频观看 | 日本91av| www.日| 噜噜噜久久,亚洲精品国产品 | 国产又粗又猛又黄视频 | 操她视频网站 | 日本黄色播放器 | 日韩一级淫片 | 91无打码| 久久精品久久精品久久精品 | 成人第一页 | 亚洲欧美日本一区二区 | 亚洲图片欧美日韩 | 在线观看涩涩视频 | 麻豆精品久久久 | 成人自拍视频 | 国产成人精品一二三区 | 中文天堂在线视频 | 美女张开腿露出尿口 | 国产精品久久久无码一区 | 欧美一级夜夜爽 | 蜜臀久久精品久久久用户群体 | 色窝av| 伊人成人在线 | 91狠狠 | 亚洲在线精品视频 |