摘要:概要什么是實戰(zhàn)整合實現(xiàn)負載均衡是什么是一個客戶端負載均衡的組件什么是負載均衡負載均衡就是分發(fā)請求流量到不同的服務(wù)器目前的實現(xiàn)有軟件和硬件負載均衡分為兩種服務(wù)器端負載均衡如上圖所示服務(wù)器端負載均衡是對客戶透明的用戶請求到服務(wù)器真正的服務(wù)器是由
概要
Spring Cloud Netflix Ribbon是什么?什么是Spring Cloud Netflix Ribbon?
實戰(zhàn):整合Ribbon實現(xiàn)負載均衡
Spring Cloud Netflix Ribbon 是一個客戶端負載均衡的組件.
什么是負載均衡?
負載均衡就是分發(fā)請求流量到不同的服務(wù)器,目前的實現(xiàn)有軟件(ngnix,apache,HA Proxy)和硬件(F5,NSX,BigIP).
負載均衡分為兩種:
服務(wù)器端負載均衡
如上圖所示.服務(wù)器端負載均衡是對客戶透明的,用戶請求到LB服務(wù)器,真正的Application服務(wù)器是由LB服務(wù)器分發(fā)控制的.
客戶端負載均衡
如圖所示,它是客戶端軟件的一部分,客戶端獲知到可用的服務(wù)器列表按一定的均衡策略,分發(fā)請求.
Ribbon的特點
Ribbon就是這樣一種客戶端負載均衡的實現(xiàn).
和Eureka完美整合
支持多種協(xié)議-HTTP,TCP,UDP
caching/batching
built in failure resiliency
實戰(zhàn):整合Ribbon實現(xiàn)負載均衡目標:基于之前的例子,在sentence app中添加Ribbon負載均衡,啟動兩個noun app,使用不同的words數(shù)據(jù),以驗證Ribbon的效果.具體步驟如下:
sentence服務(wù)添加依賴 spring-cloud-starter-ribbon (pom.xml)
替換DiscoveryClient為LoadBalancerClient及其使用的方法(getWord)
public String getWord(String service) { ServiceInstance instance = loadBalancer.choose(service); return (new RestTemplate()).getForObject(instance.getUri(),String.class); }
查看http://localhost:8020/sentence,看其是否能正常啟動
停掉量詞服務(wù),為了Eureka可以區(qū)分兩個相同host的相同服務(wù),在bootstramp.yml中添加實例號.
# Allow Eureka to recognize two apps of the same type on the same host as separate instances: eureka: instance: instanceId: ${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${random.value}}
5.先啟動一個noun服務(wù),再把noun服務(wù)中的words換為英文
String words = “picture,movie,building,aninmal”;
6.查看http://localhost:8010,看其造句是否會一次中文一次英文(默認ribbon是輪訓算法)
7.停掉其中一個noun服務(wù),看其是否會一次成功一次失敗
特別感謝 kennyk65
Spring Cloud 中文用戶組 31777218
Spring-Cloud-Config 官方文檔-中文譯本 (本人有參與,哈哈)
Spring Cloud Netflix 官網(wǎng)文檔-中文譯本
本文實例github地址
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65008.html
摘要:是一個相對比較新的微服務(wù)框架,年才推出的版本雖然時間最短但是相比等框架提供的全套的分布式系統(tǒng)解決方案。提供線程池不同的服務(wù)走不同的線程池,實現(xiàn)了不同服務(wù)調(diào)用的隔離,避免了服務(wù)器雪崩的問題。通過互相注冊的方式來進行消息同步和保證高可用。 Spring Cloud 是一個相對比較新的微服務(wù)框架,...
摘要:本例中介紹如何使用來完成服務(wù)調(diào)用并實現(xiàn)負載均衡。即,對于注冊中心而言,生產(chǎn)者和調(diào)用者都是端。文件配置如下在文件中,我們將應(yīng)用命名為,端口為,表示注冊中心地址。 前言 Ribbon是Spring Cloud體系中完成負載均衡的重要組件。Spring Cloud體系中有兩種完成服務(wù)調(diào)用的組件,一種是Ribbon+RestTemplate,另一種Feign。Feign默認使用的也是Ribbo...
摘要:要運行儀表板,請使用注解主類,然后訪問并將儀表板指向客戶端應(yīng)用程序中的單個實例的端點。連接到使用的端點時,必須信任服務(wù)器使用的證書,如果證書不受信任,則必須將證書導入,以便儀表板成功連接到流端點。 Hystrix超時和Ribbon客戶端 使用包裝Ribbon客戶端的Hystrix命令時,要確保將Hystrix超時配置為長于配置的Ribbon超時,包括可能進行的任何可能的重試,例如,如果...
摘要:前言在體系中扮演著統(tǒng)一網(wǎng)關(guān)的角色,負責與外部交互。與結(jié)合使用,可以根據(jù)服務(wù)名來訪問后端的服務(wù),對于而言,也是一個。這段代碼表示,如果請求中沒有信息,就會報錯。 前言 Zuul在Spring Cloud 體系中扮演著統(tǒng)一網(wǎng)關(guān)的角色,負責與外部交互。用戶可以通過不同的URL特征來訪問不同的后端服務(wù),類似于Nginx代理的效果。Zuul與Eureka結(jié)合使用,可以根據(jù)服務(wù)名來訪問后端的服務(wù),...
摘要:第篇電影微服務(wù),使用配置文件配置在客戶端進行負載均衡調(diào)度算法一大致介紹通過配置來設(shè)置客戶端進行負載均衡的調(diào)度算法通過兩種代碼調(diào)用方式來測試客戶端負載均衡算法二實現(xiàn)步驟添加引用包模塊客戶端發(fā)現(xiàn)模塊 SpringCloud(第 008 篇)電影微服務(wù),使用 application.yml 配置文件配置 Ribbon 在客戶端進行負載均衡調(diào)度算法 - 一、大致介紹 1、通過 applicat...
閱讀 3570·2021-11-16 11:45
閱讀 2129·2021-11-08 13:23
閱讀 2223·2021-10-11 10:59
閱讀 2900·2021-09-27 13:36
閱讀 2489·2019-08-30 15:54
閱讀 2679·2019-08-29 16:58
閱讀 2797·2019-08-29 16:56
閱讀 1347·2019-08-26 13:52