三种负载均衡 Nginx、Dubbo和Ribbon 区别

Ribbon: 在调用接口时,会在eureka(当然也可以是其他的注册中心)注册中心获取服务列表,然后缓存在本地,在本地实现远程调用。属于客户端测负载均衡
Nginx: 客户端所有的请求都会交给Nginx服务器,然后由Nginx实现请求的分发。属于服务器测负载均衡。
假如一个程序你分别部署了至少两个实例,这个时候可以在nginx配置一下负载均衡策略,这里的策略会有多种可选,具体百度一下吧,配置完后,一个请求进来先到nginx,这时候根据之前配置的策略,会把请求转到多个实例中的其中一个,假如程序中使用了springCloud作了分布式部署,在请求的相应方法中会调用其他服务实例,调用的方式是ribbon,那么当被调用的服务是至少两个以上,这个时候ribbon会根据默认的均衡策略选择其中的一个调用,这就是整个流程。
总的来说,都是负载均衡,只不过起作用的位置不一样而已,两个互补使用,这两个负载并不冲突,在生产环境中,一般都是两者共存。用户的请求进来以后,先经过nginx服务端负载,然后再进入微服务网关,执行ribbion的客户端负载;
我们项目中,还是用Feign做消费端调用比较多,他底层就是集成了Ribbion。
自己封装成了类似rpc方式的调用。默认用的是轮循,如果需要修改,
首先启动类里边实例化一个IRule,实例化他的不同接口,就可以实现不同的负载算法(7种)
参考博客:
Spring Cloud:使用 Feign 实现负载均衡详解
三种负载均衡 Nginx、Dubbo、Ribbon 区别_washingtin的专栏-CSDN博客_ribbon和dubbo
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
