微服务的学习--Ribbon

5 篇文章 0 订阅
1 篇文章 0 订阅

认识学习

Ribbon 是 Netflix 开发的一个用于客户端负载均衡的库。它被广泛用于微服务架构中,可以帮助客户端选择合适的服务实例来处理请求,实现负载均衡和容错。

Ribbon 提供了多种负载均衡算法(例如随机、轮询、加权等),它可以根据配置的规则和策略来选择服务实例。通过在客户端使用 Ribbon,可以避免对服务的直接访问,而是通过负载均衡器来代理请求,从而提高了应用的可扩展性和弹性。

在微服务架构中,通常会有多个相同的服务实例运行在不同的主机上,这些实例提供相同的服务并组成一个服务集群。Ribbon 可以通过与服务注册中心(例如 Eureka)集成,动态地获取可用的服务实例列表,并根据负载均衡算法选择一个实例来处理每个请求。同时,Ribbon 还提供了一些其他功能,如故障转移和重试等,以增加应用的容错能力。

Ribbon 在 Spring Cloud 中得到了广泛应用,它可以与 Spring Cloud 的服务发现组件(如 Eureka、Consul)无缝集成,简化了负载均衡的配置和使用。通过在客户端添加 Ribbon 的依赖,并进行相应的配置,即可在微服务架构中使用 Ribbon 实现客户端负载均衡。

使用方法–这里采用结合Eureka的方式

修改负载均衡的方式有两种

  • 1、全局配置,将针对该服务下将要访问的所有服务采用该配置规则
// 通过在SpringBoot启动类中注入IRue接口Bean实现方式的修改
@Bean
public IRule randomRule() {
    return new RandomRule();
}
  • 2、特定配置,针对需要采用改规则的服务进行特定配置
# 在application.yml文件中配置
userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
规则名称方式
RoundRobinRule轮询
WeightedResponseTimeRule权重(响应时间)
RandomRule随机
BestAvailableRule最小连接数
RetryRule重试(轮询实例失效不断重试)
AvailabilityFilteringRule过滤非健康->最小连接数
ZoneAvoidanceRule区域敏感(轮询)

小Tips

Ribbon默认采用懒加载,当我们第一次访问时创建LoadBalanClient
为了减少首次的访问耗时可以通过一下配置进行改进

# 开启饥饿加载
ribbon:
eager-load:
 enabled: true
 clients:
      - userservice
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值