dubbo项目启动后,会将每一个service都注册到zookeeper的dubbo目录下,并且将service的提供者和调用者的地址端口信息写入,如下图所示

因为注册的是临时节点,如果providers掉线,会在列表中删除,所以列表维护的是可用的列表
如果一个调用者需要调用一个service,zookeeper会将providers的列表返回,具体调用哪个providers是由调用者实现的负载均衡算法,并不是zookeeper实现的。

dubbo的负载均衡算法

Random LoadBalance(随机均衡算法)
随机,按权重设置随机概率。
在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。

RoundRobin LoadBalance(权重轮循均衡算法)
轮循,按公约后的权重设置轮循比率。
存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。(针对此种情况,需要降低该服务的权值,以减少对其调用)

LeastAction LoadBalance(最少活跃调用数均衡算法)
最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。
使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。

ConsistentHash LoadBalance(一致性Hash均衡算法)
一致性Hash,相同参数的请求总是发到同一提供者。
当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。

dubbo为何用到zookeeper相关推荐

  1. dubbo源码解析-zookeeper创建节点

    前言 在之前dubbo源码解析-本地暴露中的前言部分提到了两道高频的面试题,其中一道dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,那发布者和订阅者还能通信吗?在上周的dubbo源码 ...

  2. 微服务 注册中心的作用_微服务架构Dubbo之注册中心(Zookeeper)

    注册中心简介 在微服务架构中,注册中心是核心的基础服务之一.在微服务架构流行之前,注册中心就已经开始出现在分布式架构的系统中.Dubbo是一个在国内比较流行的分布式框架,被大量的中小型互联网公司所采用 ...

  3. Dubbo源码解析 —— Zookeeper 订阅

    作者:肥朝 原文地址:https://www.jianshu.com/p/73224a6c07bb 友情提示:欢迎关注公众号[芋道源码].????关注后,拉你进[源码圈]微信群和[肥朝]搞基嗨皮. 友 ...

  4. 为什么dubbo使用ZkClient作为zookeeper的客户端

    本文内容并非原创,使用资料均来自互联网. dubbo使用了zkClient而不是使用zookeeper本身的客户端与zookeeper进行交互,为什么呢? 先看看zookeeper本身自带的客户端的问 ...

  5. dubbo 入门教程 基于zookeeper

    第一步 在spring官网下载一个spring比较全的包. 我用的还是以前的3.2 第二步 新建一个web项目.将spring的包放在lib下面. 第三步 在dubbo.io官网的版本库下载dubbo ...

  6. Dubbo 注册中心 之 Zookeeper

    2-6 注册中心概述

  7. 两个月拿到N个offer,看看我是如何做到的

    转载自   两个月拿到N个offer,看看我是如何做到的 前言: 北京-三年经验-Java,在金三银四这两个月期间(在五月初还去面试了几家,主要是三四月份期面试剧居多),我跳槽面试,前前后后我面试十五 ...

  8. 上两个月,15家面试,几个offer , 我的面试历程!

    本人三年java工作经验,下面是这两个月的面试历程,分享给大家! 1.新东方 03_19 技术面试,两轮,地点:中关村地铁站E口,某大厦大厦6层, 面试时间:2019_03_19_10:30(提前到了 ...

  9. 北京工作三年程序员,2018年4~5月面试经历

    1.新东方  04_19 技术面试,两轮,地点:中关村地铁站E口,鼎好大厦6层, 面试官:龙彦俊,李经理    面试时间:2018_04_19_10:30(提前到了45分钟) 1.自我介绍 2.项目介 ...

最新文章

  1. 序列内置方法详解(string/list/tuple)
  2. MyAdapter Andriod
  3. cs结构航空订票系统java_VC++航空订票系统数据库设计-课程设计
  4. 黑马程序员--线程【下】
  5. 这 28 张精炼图,将吴恩达的 deeplearning.ai 总结得恰到好处!
  6. ZJOI2019赛季回顾
  7. 百度网盘挺住!给非会员限速只是为了活下去
  8. Virtio: An I/O virtualization framework for Linux | 原文
  9. 利用Auto Deploy 部署ESXi 5
  10. Elasticsearch数据库下载
  11. 如何将常用软件在Finder工具栏上置顶?
  12. 最小生成树:Kruskal算法
  13. 教师工作量管理系统设计_教育培训机构为什么一定要用管理系统?
  14. gstream初次尝试
  15. 数据分享 — 国内外常用夜间灯光数据产品介绍
  16. ROSDUCT:通过rosbridge在本地公开远程ROS主题、服务和参数
  17. 用FFmpeg快捷加文字水印
  18. 地铁口多了一堆小卡片,事情并不简单?
  19. 生活,人艰不拆,各种躺枪
  20. 走进小作坊(十)----长尾效应

热门文章

  1. 关于tableau的tabe calculation详细讲解
  2. 洛谷 P4568 [JLOI2011] 飞行路线(分层图最短路)
  3. emlog pro 注册码机制
  4. 诚之和:《鱿鱼游戏》普通人与恶的距离,究竟有多远
  5. ImageNet1000分类,英文原版,中文翻译版
  6. 01.爱芳地产项目小程序全栈项目经验(已上线)
  7. 计算机删除网络位置,Win7/win8系统下如何快速删除多余的网络位置【图文】
  8. MAC的 Homebrew 下载
  9. 别找了!企业大数据都从这里来的!
  10. 计算机网络学习日记 Day1