摘要:概要什么是實戰整合實現負載均衡是什么是一個客戶端負載均衡的組件什么是負載均衡負載均衡就是分發請求流量到不同的服務器目前的實現有軟件和硬件負載均衡分為兩種服務器端負載均衡如上圖所示服務器端負載均衡是對客戶透明的用戶請求到服務器真正的服務器是由
概要
Spring Cloud Netflix Ribbon是什么?什么是Spring Cloud Netflix Ribbon?
實戰:整合Ribbon實現負載均衡
Spring Cloud Netflix Ribbon 是一個客戶端負載均衡的組件.
什么是負載均衡?
負載均衡就是分發請求流量到不同的服務器,目前的實現有軟件(ngnix,apache,HA Proxy)和硬件(F5,NSX,BigIP).
負載均衡分為兩種:
服務器端負載均衡
如上圖所示.服務器端負載均衡是對客戶透明的,用戶請求到LB服務器,真正的Application服務器是由LB服務器分發控制的.
客戶端負載均衡
如圖所示,它是客戶端軟件的一部分,客戶端獲知到可用的服務器列表按一定的均衡策略,分發請求.
Ribbon的特點
Ribbon就是這樣一種客戶端負載均衡的實現.
和Eureka完美整合
支持多種協議-HTTP,TCP,UDP
caching/batching
built in failure resiliency
實戰:整合Ribbon實現負載均衡目標:基于之前的例子,在sentence app中添加Ribbon負載均衡,啟動兩個noun app,使用不同的words數據,以驗證Ribbon的效果.具體步驟如下:
sentence服務添加依賴 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,看其是否能正常啟動
停掉量詞服務,為了Eureka可以區分兩個相同host的相同服務,在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服務,再把noun服務中的words換為英文
String words = “picture,movie,building,aninmal”;
6.查看http://localhost:8010,看其造句是否會一次中文一次英文(默認ribbon是輪訓算法)
7.停掉其中一個noun服務,看其是否會一次成功一次失敗
特別感謝 kennyk65
Spring Cloud 中文用戶組 31777218
Spring-Cloud-Config 官方文檔-中文譯本 (本人有參與,哈哈)
Spring Cloud Netflix 官網文檔-中文譯本
本文實例github地址
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65008.html
摘要:是一個相對比較新的微服務框架,年才推出的版本雖然時間最短但是相比等框架提供的全套的分布式系統解決方案。提供線程池不同的服務走不同的線程池,實現了不同服務調用的隔離,避免了服務器雪崩的問題。通過互相注冊的方式來進行消息同步和保證高可用。 Spring Cloud 是一個相對比較新的微服務框架,...
摘要:本例中介紹如何使用來完成服務調用并實現負載均衡。即,對于注冊中心而言,生產者和調用者都是端。文件配置如下在文件中,我們將應用命名為,端口為,表示注冊中心地址。 前言 Ribbon是Spring Cloud體系中完成負載均衡的重要組件。Spring Cloud體系中有兩種完成服務調用的組件,一種是Ribbon+RestTemplate,另一種Feign。Feign默認使用的也是Ribbo...
摘要:要運行儀表板,請使用注解主類,然后訪問并將儀表板指向客戶端應用程序中的單個實例的端點。連接到使用的端點時,必須信任服務器使用的證書,如果證書不受信任,則必須將證書導入,以便儀表板成功連接到流端點。 Hystrix超時和Ribbon客戶端 使用包裝Ribbon客戶端的Hystrix命令時,要確保將Hystrix超時配置為長于配置的Ribbon超時,包括可能進行的任何可能的重試,例如,如果...
摘要:前言在體系中扮演著統一網關的角色,負責與外部交互。與結合使用,可以根據服務名來訪問后端的服務,對于而言,也是一個。這段代碼表示,如果請求中沒有信息,就會報錯。 前言 Zuul在Spring Cloud 體系中扮演著統一網關的角色,負責與外部交互。用戶可以通過不同的URL特征來訪問不同的后端服務,類似于Nginx代理的效果。Zuul與Eureka結合使用,可以根據服務名來訪問后端的服務,...
摘要:第篇電影微服務,使用配置文件配置在客戶端進行負載均衡調度算法一大致介紹通過配置來設置客戶端進行負載均衡的調度算法通過兩種代碼調用方式來測試客戶端負載均衡算法二實現步驟添加引用包模塊客戶端發現模塊 SpringCloud(第 008 篇)電影微服務,使用 application.yml 配置文件配置 Ribbon 在客戶端進行負載均衡調度算法 - 一、大致介紹 1、通過 applicat...
閱讀 3568·2021-11-16 11:45
閱讀 2114·2021-11-08 13:23
閱讀 2219·2021-10-11 10:59
閱讀 2898·2021-09-27 13:36
閱讀 2484·2019-08-30 15:54
閱讀 2674·2019-08-29 16:58
閱讀 2792·2019-08-29 16:56
閱讀 1346·2019-08-26 13:52