聊聊Apache Dubbo,概念、架构和负载均衡
维基百科对负载均衡的定义:负载均衡改善了跨多个计算资源(例如计算机,计算机集群,网络链接,中央处理单元或磁盘驱动的的工作负载分布。负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间,并避免任何单个资源的过载。使用具有负载平衡而不是单个组件的多个组件可以通过冗余提高可靠性和可用性。负载平衡通常涉及专用软件或硬件 上面讲的大家可能不太好理解,再用通俗的话给大家说一下。 比如我们的系统中的某个服务的访问量特别大,我们将这个服务部署在了多台服务器上,当客户端发起请求的时候,多台服务器都可以处理这个请求。那么,如何正确选择处理该请求的服务器就很关键。假如,你就要一台服务器来处理该服务的请求,那该服务部署在多台服务器的意义就不复存在了。负载均衡就是为了避免单个服务器响应同一请求,容易造成服务器宕机、崩溃等问题,我们从负载均衡的这四个字就能明显感受到它的意义。 3.2 再来看看 Dubbo 提供的负载均衡策略 在集群负载均衡时,Dubbo 提供了多种均衡策略,默认为 random 随机调用。可以自行扩展负载均衡策略,参见:负载均衡扩展。 备注:下面的图片来自于:尚硅谷2018Dubbo 视频。 3.2.1 Random LoadBalance(默认,基于权重的随机负载均衡机制) 随机,按权重设置随机概率。 在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。 ![]() 基于权重的随机负载均衡机制 3.2.2 RoundRobin LoadBalance(不推荐,基于权重的轮询负载均衡机制)
![]() 基于权重的轮询负载均衡机制 3.2.3 LeastActive LoadBalance 最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。 使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。 3.2.4 ConsistentHash LoadBalance
3.3 配置方式 xml 配置方式 服务端服务级别 客户端服务级别 服务端方法级别 客户端方法级别 注解配置方式: 消费方基于基于注解的服务级别配置方式: 四 zookeeper宕机与dubbo直连的情况 zookeeper宕机与dubbo直连的情况在面试中可能会被经常问到,所以要引起重视。 在实际生产中,假如zookeeper注册中心宕掉,一段时间内服务消费方还是能够调用提供方的服务的,实际上它使用的本地缓存进行通讯,这只是dubbo健壮性的一种提现。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |