一、基本讲解
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