GitHub地址:https://github.com/leebingbin/SpringCloud.MovieTicketinggit
在上篇博客《Spring Cloud版——電影售票系統<—>微服務註冊與發現》中,已經實現了微服務的註冊與發現。啓動各個微服務時,Eureka Client會把本身的網絡信息註冊到Eureka Server。然而,這樣的架構依然有一些問題,好比負載均衡。通常來講,各個微服務都會部署多個實例。那麼服務消費者要如何將請求分攤到多個服務者實例上呢?github
1、Ribbon簡介算法
Ribbon 是 Netflix 發佈的負載均衡器,它有助與控制HTTP和TCP客戶端的行爲。爲Ribbon配置服務提供者地址列表後,Ribbon就可基於某種負載均衡算法,自動地幫助服務消費者去請求。Ribbon 默認爲咱們提供了不少的負載均衡算法,例如輪詢,隨機等。固然,咱們也能夠爲Ribbon實現自定義的負載均衡算法。spring
在Spring Cloud中,當Ribbon 和 Eureka 配合使用時, Ribbon可自動從Eureka Server獲取服務提供者地址列表,並基於負載均衡算法,請求其中一個服務提供者實例。網絡
Eureka 與 Ribbon 配合使用架構以下:架構
Tips:爲項目引入Ribbon的依賴,Ribbon的依賴是:負載均衡
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> </dependency>
但一般都不用單獨添加這個依賴的,由於這個依賴已經包含在spring-cloud-starter-ribbon,無須再次引入。微服務
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency>