Ribbon负载均衡的原理&Nacos和Eureka的区别

Ribbon负载均衡的原理&Nacos和Eureka的区别

目录

1.Ribbon负载均衡的原理

2.负载均衡规则

3.Nacos和Eureka的区别

如何设置临时实例和非临时实例


1.Ribbon负载均衡的原理

首先服务发起请求,请求中携带服务提供者的服务名,然后当请求进入到Ribbon以后,请求会被一个拦截器LoadBalanceInterceptor(负载均衡拦截器)拦住。

LoadBalanceInterceptor拦截下来以后得到请求uri中的服务id,获取到之后传给Ribbon负载均衡客户端。

这个Ribbon负载均衡客户端会把服务id传给DynamicServerListLoadBalancer,它会去eureka里去拉去服务列表,得到多个服务的信息,然后会去找IRule做服务负载均衡。

IRule会从返回的服务列表中按照轮询等算法挑选出一个服务,再把这个值返回给Ribbon负载均衡客户端,它会用这个ip和端口替换我们url中的服务名称,得到真实的ip地址 。


2.负载均衡规则

1.RoundRonbinRule(简单轮询):简单轮询服务列表来选择服务器。它是Ribbon默认的负载均衡规则,将请求顺序轮流分配到服务器上,均衡的对待每一台服务器,而不关心实际的连接数和当前系统的负载,轮询法适用于机器性能相同的服务,如果有些机器性能不好,可能会出现木桶效应

2.RandomRule(随机法):随机选择一个可用的服务器,也不适用于机器性能差异较大的分布式系统

3.Weighted Random Ronbin(加权轮询):在轮询算法的基础上增加了权值概念,配置较高,负载低的机器分配更高的权重,而配置低,负载高的机器分配较低的权重,权重越高被选中的概率就越大。Nginx的负载均衡默认使用的就是加权轮询算法

4.Least Connections(最少连接):最少连接策略将请求分发给当前连接数量最少的服务器,可以确保负在后端服务器的连接负载上的均衡,但是需要维护连接计数

5.Weighted Random(加权随机): 加权随机选择与加权轮询类似,但是按照权重值来随机选择后端服务器。这也可以用来处理服务器性能不均衡的情况,但是分发更加随机

6.IP Hash(IP地址哈希): 根据客户端的IP地址来计算哈希值,然后将请求发送到和哈希值相对应的服务器。这种策略可以保证来自同一客户端的请求都保存到同一服务器,适用于需要会话保持的情况


3.Nacos和Eureka的区别

1.Nacos会把服务提供者划分为临时实例和非临时实例,默认情况下所有的实例都是临时实例。

   临时实例因为是临时的所以将来我们可以人为的把他停掉,所以临时实例是采用心跳检测的,每隔一段时间会发送心跳给nacos,如果有一天不跳了,那么nacos就会把他直接从服务列表中剔除。

   非临时实例是nacos主动发请求去询问服务是否存货,主动询问的速度会比较快,但是主动询问对服务器的压力会比较大,所以推荐使用临时实例,且非临时实例不会被剔出。

2.Eureka进行服务定时拉取的时间间隔是30s,如果这期间有服务挂了,那么就会出问题,所以Eureka的定时拉取效率也比较差

   nacos是主动采取push推送更新,每隔一段时间去push更新,但是假设nacos发现有服务挂了,那么就会立即发一条消息推送给我们的消费者。然后告诉你说服务变更了,服务列表更新的更加及时

3.Nacos集群默认采用的是AP方式,当集群中存在非临时实例的时候,采用CP模式;

   Eureka采用的是AP方式。

如何设置临时实例和非临时实例

学习笔记from黑马程序员
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值