zookeeper在dubbo中干什么
本文旨在表述出自己对于zookeeper在dubbo的作用的初步理解
在对dubbo进行了初步的探索后,对于zookeeper在其中的作用不甚了解,因为本身对zookeeper就没有一个特别具体的概念,所以在这里思考一下,为什么要使用zookeeper或者说dubbo为什么要有注册中心
一对一的调用
Server A依赖Server B提供的RPC服务,因为Server B只有单一的一份,那么此时Server A只需要Server B提供RPC调用的ip和port就可以了
一对多的调用
Server B在用户量日益扩大的背景下,需要进行横向扩展,此时的Server B扩充到了3台服务器:01,02,03
这样做的好处是:
- 一台宕机,还有两个正常运转的Server
- 负载均衡(并不是zookeeper实现的,具体的负载均衡算法需要自己实现,zookeeper能提供给我们的是可用服务列表)
- ...
那么对于Server A来说,一下子有3个Server B可以使用,该如何选择呢?如果我选择了01,我还需要去关心,01是不是挂了,01挂了我选择谁呢?
对于Server B来说,我如何进行负载均衡呢?
其实对于Server A来说,我不想要关心Server B的主备情况,我希望Server B的整个分布对于我这个调用方是完全透明的,那么考虑一下这种结构:
其实这个结构很好理解:由于Server B的分布式部署,Server A有选择困难症不知道该选择哪一个B,那么我们就让中间人帮他选并告诉他,然后Server A知道要找谁了,就会去找相关的Server。图中黄色的线代表了注册通知过程,绿色的线代表了调用过程。
例如,Server B的3台服务器都注册一个“获取用户列表”的RPC接口到zookeeper中,Server A作为客户端连接zookeeper,向zookeeper讨要一个“获取用户列表”接口,拿到这个接口的相关信息之后,Server A再去调用具体的Server B的某一台服务器上的服务。即:注册中心(zookeeper)不做实际的方法调用,只做相关信息的传递者。
更多需要关注的细节:
- dubbo的在向zookeeper注册服务时,放了些什么数据进去?
- dubbo的负载均衡是dubbo自己做的,还是zookeeper做的?
- ...
zookeeper在dubbo中干什么的更多相关文章
- zookeeper在Dubbo中扮演了一个什么角色
作者:guxiangfly链接:https://www.zhihu.com/question/25070185/answer/188238271来源:知乎著作权归作者所有.商业转载请联系作者获得授权, ...
- Zookeeper笔记(四)Zookeeper在Dubbo中的应用
Zookeeper在Dubbo中的应用 Dubbo的架构 节点角色说明: Provider: 暴露服务的服务提供方.Consumer: 调用远程服务的服务消费方.Registry: 服务注册与发现的注 ...
- 【DUBBO】zookeeper在dubbo中作为注册中心的原理结构
[一]原理图 [二]原理图解释 流程:1.服务提供者启动时向/dubbo/com.foo.BarService/providers目录下写入URL2.服务消费者启动时订阅/dubbo/com.foo. ...
- zookeeper在Dubbo中角色与作用
作者:倪炜链接:http://www.zhihu.com/question/25070185/answer/86166486来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处 ...
- zookeeper和dubbo中出现的问题
报错出现timeout关键字 解决:在服务发布时,添加timeout字段 <!-- 5.服务发布 --> <dubbo:service interface="com.sxt ...
- Zookeeper在Dubbo中的作用及Zk集群的选举原理
转自 : https://blog.csdn.net/zh15732621679/article/details/80723358
- 服务治理框架dubbo中zookeeper的使用
Zookeeper提供了一套很好的分布式集群管理的机制,就是它这猴子那个几月层次型的目录树的数据结构,并对书中的节点进行有效的管理,从而可以设计出多种多样的分布式的数据管理模型:下面简要介绍下zook ...
- 通过dubbo暴露接口调用方法,及基于zookeeper的dubbo涉及配置文件
现在很流行的Dubbo很多朋友都听说过吧,最近我也在看这方面的东西,分享先我的心得笔记. 先说说我们团队要做的项目框架,很简单重在实现基于zookeeper的dubbo注册. 框架:springmvc ...
- SpringMVC、Zookeeper、Dubbo使用
联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使前 ...
随机推荐
- java字符串转义,把<>转换成<>等字符【原】
java字符串转义,把<>转换成<>等字符 使用的是commons-lang3-3.4 中的StringEscapeUtils类 package test; import ja ...
- spring @Entity @Table
import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; impor ...
- UVALive - 7637 E - Balanced String(构造)
原题链接 题意:给出一个打乱顺序的序列,问是否能构造出一个括号匹配的字符串.每个数字为此前读取到的左括号数减去右括号数. 分析:有左括号开始构造,不够的话就找右括号.注意特殊情况待处理.详情看代码 # ...
- C# 修改编译版本的方法
- mysql 原理 ~ double write
一 简介:今天来聊聊double write 二 细节 1 Double write 是InnoDB在 tablespace(ibdata1)上的128个页(2个区)是2MB: 2 何谓页断裂 所谓页 ...
- mysql 5.7 ~ 新特性
mysql 5.7特性 简介:mysql 5.7内存和线程性能方面的优化一 细节优化 参数: 1 innodb_buffer_pool 改进 innodb_buffer_pool可以动态扩大, ...
- js数组的操作push,pop,shift,unshift
push(args)可以每次压入多个元素,并返回更新后的数组长度. var oldArr=[1,2,3]; alert(oldArr.push(4,[5,6]))–>5(这里只会将[5,6]当做 ...
- 之手算KD-tree
转自:https://zhuanlan.zhihu.com/p/27453420 本文来源于Machine Learning: Clustering & Retrieval | Courser ...
- mono修改配置
当前mono安装目录为:/home/mono,安装成功后修改配置需进入这个路径: cd /home/mono 1.修改TcpBinaryFrameManager.cs文件 cd /home/mono/ ...
- Zookeeper简介与集群搭建【转】
Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...