天天看點

Ribbon(負載 均衡)

一、基本講解

Ribbon 是什麼?

Ribbon(負載 均衡)
Ribbon(負載 均衡)
Ribbon(負載 均衡)

負載均衡(集中式LB、程序内LB):

Ribbon(負載 均衡)
Ribbon(負載 均衡)
Ribbon(負載 均衡)

Ribbon 基本配置:

Ribbon(負載 均衡)

架構圖:

Ribbon(負載 均衡)

預設負載均衡算法: 輪詢

二、Ribbon 自定義

1、IRule : 根據特定算法從服務清單中選取一個要通路的服務,預設自帶了七種負載均衡算法:

Ribbon(負載 均衡)
Ribbon(負載 均衡)

注意:

Ribbon(負載 均衡)

使用屬性自定義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

繼續閱讀