SpringCloud(二) - Ribbon

什么是Ribbon

Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡工具,它将Netflix的中间服务连接在一起,Ribbon客户端组件提供一套完整的配置(如连接超时,重试等)。简单来说,就是在配置文件中列出Load Balancer(LB,负载均衡)后面所有的机器,Ribbon会自动地帮助你基于某种规则(比如简单轮询,随机连接等)去连接这些服务。我们也可以使用Ribbon实现自定义的负载均衡算法。默认使用的是轮询算法。

集中式LB

在服务的消费方和提供方之间使用独立的LB设施(可以是硬件,比如F5,也可以是软件,比如nginx),由该设施负责把访问请求通过某种策略转发至服务提供方。

进程内LB

将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己从中选择一个合适的服务器。

Ribbon的使用

  1. 配置pom.xml:导入eureka,ribbon,config的starter模块
  2. 修改application.yml:配置eureka客户端
  3. 在RestTemplate上配置注解 @EnableBalancer

Ribbon和Eureka整合后Consumer可以直接调用服务而不用再关心地址和端口号

Ribbon的架构图

请添加图片描述

Ribbon的核心组件IRule

配置Ribbon使用的负载均衡策略

请添加图片描述
Ribbon提供的负载均衡算法
请添加图片描述

自定义负载均衡策略

  1. 在启动类上加上注解
@RibbonClient(name = "客户端名称", configuration = MyselfRule.class)
  1. MyselfRule类:这个类不可以在启动类所在的包或者子包下,也不能在被 @ComponentScan 配置了扫描的包下。
@Configuration
public class MyselfRule {
	
	@Bean
	public IRule myRule () {
		return new XXXRule();
	}
}
  1. 自定一规则类:继承 AbstractLoadBalancerRule 类,并实现对应的方法即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值