1. 程式人生 > >spring cloud系列教程(5)--什麼是ribbon

spring cloud系列教程(5)--什麼是ribbon

給大家推薦個靠譜的公眾號程式設計師探索之路,大家一起加油https://img-blog.csdnimg.cn/20181129224604602.png ​  

spring cloud ribbon 是基於netflix ribbon實現的一套客戶端 負載均衡工具 。簡單說,ribbon是netflix釋出的開源專案,主要功能是提供客戶端的軟體負載均衡演算法,將netflix的中間層服務連線在一起.ribbon客戶端元件提供一系列完善的配置項如連線超時,重試等.簡單說,就是在配置檔案中列出load balancer 簡稱(LB)後面所有的機器,ribbon會自動的幫助你基於某種規則(如簡單輪詢,隨機連線等)去連線這些機器.我們也很容易使用ribbon實現自定義負載均衡演算法.

LB,即負載均衡(Load Balance),在微服務或分散式叢集中經常用的一種應用.負載均衡簡單的說就是將使用者的請求平攤的分配到多個服務上,從而達到系統的HA.常見的負載均衡軟體軟體nginx,LVS,硬體F5等.相應的在中介軟體.例如dubbo和springCloud中均給我們提供了負載均衡,SpringCloud的負載均衡演算法可以自定義.

LB分為集中式LB和程序內LB。

集中式LB:即在服務的消費方和提供方之間使用獨立的LB設施(可以是硬體,如F5,也可以是軟體,如nginx),由該設施負責把訪問請求通過某種策略轉發至服務的提供方.

程序內LB:即將LB邏輯整合到消費方,消費方從服務註冊中心獲知有哪些地址可用,然後自己再從這些地址中選擇一個合適的伺服器.Ribbon就屬於程序內LB,它只是一個類庫,集成於消費方程序,消費放通過它來獲取到服務提供方的地址.

程式碼地址:https://github.com/ZhZGod/spring-cloud-codes