dubbo+zk是怎么实现负载均衡的(由谁实现的?)

问题1:dubbo是个什么东西?
    答:dubbo是一个分布式的服务架构;
        包括节点角色:
        Provider: 暴露服务的服务提供方。
        Consumer: 调用远程服务的服务消费方。
        Registry: 服务注册与发现的注册中心。
        Monitor: 统计服务的调用次调和调用时间的监控中心。
        Container: 服务运行容器。
        关系说明:
        0. 服务容器负责启动,加载,运行服务提供者。
        1. 服务提供者在启动时,向注册中心注册自己提供的服务。
        2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
        3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
        4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
        5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
    引申问题(自行百度):dubbo的负载均衡算法?            
            
问题2:zk是个什么东西?
        答:
        Zookeeper分布式服务框架是Apache Hadoop的一个子项目(树型的目录服务的数据存储,能做到集群管理数据),它主要是用来解决分布式应用中经常遇到的一些数据管理问题。
        如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等
        引申问题(自行百度):zk的选举机制(主要保证了数据的同步性),心跳机制(监测集群是否存在机器宕机,宕机剔除),分布式锁等?
        
问题3:dubbo为什么和zk一起使用?
        答:运用技术比较成熟,参考资料较多,而且zk的特性比较适合dubbo;

问题4:zk在dubbo中具体作用是什么?
        答:dubbo本身不用硬配置ip和服务的对应关系,由zk来实现;
            zk通过心跳机制保证机器的存活性,如果机器宕机,检测不到心跳,能及时的剔除该节点,不影响整体服务的调用;
            通过zk可以直接增加均衡的节点,和原来的服务没有任何关联;
            

问题5:zk+dubbo负载均衡的实现?由谁实现?实现方式?(百度了n多资料,最终的个人理解-有疑问可以沟通)
        答:负载均衡的实现网上大部分说是有zk实现的,我感觉不如说是基于zk实现的;zk在dubbo里面的主要作用是一个注册中心的作用,因为dubbo的注册
        中心可以抽象出来,所以不用zk的情况下还可以使用其他的如Redis等;
            注册中心存储所有服务列表,并在消费者调用的时候暴露给消费者,消费者采用轮询、随机、hash等算法实现软负载均衡;
            所有的zk服务宕机,并不影响dubbo服务的调用,因为dubbo可以根据本地缓存的服务列表进行调用,这也另一面的证明了负载均衡的实现方;
            引申问题(自行百度):dubbo的负载均衡算法?

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值