一、基本講解
Ribbon 是什麼?
負載均衡(集中式LB、程序内LB):
Ribbon 基本配置:
架構圖:
預設負載均衡算法: 輪詢
二、Ribbon 自定義
1、IRule : 根據特定算法從服務清單中選取一個要通路的服務,預設自帶了七種負載均衡算法:
注意:
使用屬性自定義Ribbon 配置:
Ribbon支援使用屬性自定義Ribbon 用戶端, 這種方式比使用java 代碼友善的多,支援的屬性如下:
配置的字首是<clientName>.ribbon.
NFLoadBalancerClassName : 配置ILoadBalancer 的實作類
NFLoadBalancerRuleClassName 配置IRule 的實作類
NFLoadBalancerPingClassName: 配置IPing 的實作類
NIWSServerListClassName : 配置ServerList實作類
NIWSServerListFilterClassName : 配置ServerListFilter 的實作類
示例如下:
microservice-provider-user:
ribbon:
NFLoadBalancerRuleClassName :com.netflix.loadbalacer.RandomRule
這樣就可以将負載均衡算法更改為随機
脫離Eureka 使用Ribbon
如果想要脫離Eureka 直接使用Ribbon 來通路服務,則類似于直連dubbo 服務
可以直接配置服務清單,這樣就可以直接通路服務清單中的服務,示例如下:
server:
port: 8010
spring:
application:
name: microservice-consumer-movie
microservice-provider-user:
ribbon:
listOfServers: localhost:8080,localhost:8001 # 為消費者提供服務清單
感謝周立SpringCloud 相關書籍
官網 api 連結http://cloud.spring.io/spring-cloud-static/Dalston.SR1/#spring-cloud-ribbon