目前做微服务接触到spring cloud,使用ribbon做了负载均衡;
而dubbo本身也实现了负载均衡;
但是在实际生产环境中依然使用了nginx;
它们有什么区别呢?既然dubbo和spring cloud实现了负载均衡,为什么生产系统还要使用nginx呢?
有关分布式系统的负载均衡问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答
关注 负载均衡是用于平衡每台服务的请求量,防止产生热点。
dubbo提供的是RPC的服务调用,这种服务一般用于内部接口,例如公司内部跨业务的操作,A 业务需要通过dubbo访问B 业务的服务。
此时dubbo的负载均衡相当于对于B业务的服务做负载均衡。ribbon是提供http请求的负载均衡,这种一般用于对外的API接口,例如基于restful的接口。
例如A业务有100个节点,其中30个节点是对外的Api接口,这种情况下就可以使用这种方式进行均在均衡。nginx是在网关层面的负载均衡,这种负载均衡不需要代码入侵,可以实现动态配置。并且无关协议,可以对于多种协议实现负载均衡,包括http, rpc等。
总结来看,dubbo的负载均衡只面向dubbo服务,是rpc服务的负载均衡。ribbon的负载均衡面向http请求。这两种都是细粒度化的负载均衡。
nginx是网关层面的负载均衡。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题