SpringCloud微服务入门(六),负载均衡Ribbon

目录



正文


Ribbon是SpringCloud的客户端负载均衡组件。

什么是客户端负载均衡呢?

客户端实际上是指服务调用者。在SpringCloud中调用者本身集成Ribbon,由调用者自己决定来调用哪个节点的服务。这就是客户端负载均衡。我们常用的负载均衡组件Nginx是服务端负载均衡。由服务端(Nginx)来决定调用哪个节点。

Ribbon主要组件由ServerList、IRule、ServerListFilter组成。

ServerList 是服务列表,用于服务发现。客户端集群,那么客户端必然要知道有哪些服务可以用; IRule 是负载均衡规则和选择器,负载均衡规则都实现了此接口; ServerListFile 是服务过滤器。

在SpringCloud中其实不用做任何配置,就已经在无形之中使用了Ribbon了,通过项目依赖可以发现。Ribbon默认采用RoundRobinRule轮询策略。

如果要更换默认策略也是非常简单的,只要修改应用的application.properties文件就可以了。请看以下代码:

PARK.ribbon.NFLoadBalancerRuleClassName:com.netflix.loadbalancer.RandomRule

PARK 是指客户端需要调用的集群服务名;

ribbon.NFLoadBalancerRuleClassName 是约定好的一个写法,照这样写就可以了;

com.netflix.loadbalancer.RandomRule 是Ribbon提供的几种负载均衡策略中的随机策略。

在本节中笔者不会去讲Ribbon的实现原理,也不会去讲源码和更加高级的使用。正常情况下默认状态就已经足够了。不使用,就已经是在用了。读者们心中有数就可以了。

而自定义负载均衡策略可以看Spring官方文档,非常简洁,照做就可以了,就在此不累述了。文档地址:https://cloud.spring.io/spring-cloud-static/spring-cloud.html#spring-cloud-ribbon

本博客采用 知识共享署名-禁止演绎 4.0 国际许可协议 进行许可

本文标题:SpringCloud微服务入门(六),负载均衡Ribbon

本文地址:https://jizhong.plus/post/2020/03/study-springcloud-06.html