首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ribbon 基础学习

目录

Ribbon 是什么?

如何使用Ribbon?

1. 引入依赖

2. 加注解(RestTemplate整合Ribbon)

3. 编码

Ribbon 是由哪些组件构成?

Ribbon  内置的负载规则有哪些?

Ribbon 如何细力度配置负载规则?

代码配置

配置属性方式

两种方式对比

Ribbon 如何开启全局配置?

Ribbon 如何开启饥饿加载?

Ribbon 如何基于Nacos 的权重实现负载规则?

Ribbon 如何有些调用同一机房的集群服务?

总结:

Ribbon 是什么?

Ribbon 是Netflix 提供的开源客户端负载均衡器,他提供了多种负载均衡规则;

如何使用Ribbon?

1. 引入依赖

2. 加注解(RestTemplate整合Ribbon)

3. 编码

将RestTemplate 调用接口中的ip端口,替换成注册在nacos服务上的服务名称

 eg:

     http://alibaba-nacos/config/get   -- alibaba-nacos 是被调用方注册在nacos 上的服务名

Ribbon 是由哪些组件构成?

Ribbon  内置的负载规则有哪些?

  Ribbon 如何细力度配置负载规则?

Ribbon 规则配置支持代码配置和配置属性方式配置,两种方式各有利弊。详情如下

代码配置

注意: RibbonRuleConfig 放置的位置需要是spring boot 启动类外的包内,否则会导致父子上下文重叠,从而引发问题;如果Ribbon 配置过程中发生了父子上下文重叠,会产生什么问题呢?

答案是如果RibbonRuleConfig配置在Spring boot 启动类同一个包内,那么这个Ribbon 负载规则 不在是针对服务的,而是一个全局的配置项了。到时候访问其他服务的接口也会调用RibbonRuleConfig 定义的负载规则,无法达到自定义细粒度Ribbon 负载规则配置了

配置属性方式

其中 alibaba-nacos 是待调用服务nacos 服务名

NFLoadBalancerRuleClassName 指定的是负责规则类

两种方式对比

代码配置:

优点:基于代码配置,更加灵活

缺点:编写时需要注意父子上下文重叠问题,并且每次更改发布需要重新打包部署

配置文件:

优点:配置直观,修改无需重新部署

缺点:极端条件下,没有代码配置灵活。但是99% 的情况其实是可以通过配置属性方式来实现的

Ribbon 如何开启全局配置?

 Ribbon 如何开启饥饿加载?

Ribbion 默认是懒加载的方式,及服务第一调用的时候,才去加载。会导致第一次访问服务的时候速度缓慢.开启饥饿加载只需要在配置文件配置

开启饥饿加载配置方式:

alibaba-nacos 是注册在nacos上的服务名称,多个之间用逗号分隔

Ribbon 如何基于Nacos 的权重实现负载规则?

Nacos 权重配置的优点是可以基于服务器性能进行对服务器资源的在分配。且可以辅助我们达到服务器灰度下线的能力;实现如下

配置文件添加对自定义负载规则的引用:

 Ribbon 如何有些调用同一机房的集群服务?

更多情况下,为了容灾,我们会对集群进行异地部署。在使用的时候,为了性能,我们常常需要调用同一机房的服务

配置文件添加对自定义规则的引用

Ribbon 如何基于元数据的方式实现不同版本调用不同服务的能力?

参考: http://www.imooc.com/article/288674

总结: 

通过Ribbon 的基础学习,对于负载规则,我们又多了一个思路去实现。本章博文是基于对大目老师Spring cloud alibaba Ribbon 课程的一个记录和总结。

------------END-----------

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210131A01QAU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券