天天看点

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

继续阅读