Dubbo源码剖析二之注册中心
Dubbo基础二之架构及处理流程概述 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中架构中,无论是服务提供者还是服务消费者都离不开注册中心,可见注册中心之重要。Redis、Nacos、Zookeeper等这些开源框架均作为Dubbo的注册中心,Dubbo推荐用户使用Zookeeper作为注册中心。
之前文章案例也均使用Zookeeper作为注册中心,所以本文研究注册中心,也就研究Dubbo如何整合Zookeeper并使用。对于Zookeeper,可参考Zookeeper - 随笔分类 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)。
Dubbo本身是使用Zookeeper的业务应用系统,所以从建设应用系统的角度研究注册中心。
注册之前,Dubbo必需与Zookeeper服务器建立链接,Dubbo中使用开源客户端Curator。调试可以发现Dubbo链接到Zookeeper使用的是扩展点机制(参考DubboSPI机制二之Dubbo中SPI初体验 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)):



所以参考Curator链接Zookeeper的文章即可Zookeeper开源客户端Curator之创建会话 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)。在Dubbo中具体链接源码如下:

链接成功后进行注册,可以看到注册后Zookeeper的的目录结构,如下:

1)从图示可知所有的目录都在dubbo层级下
2)dubbo根结点下面是当前所拥有的接口名称、如果有多个接口则会以多个子节点的形式展开
3)每个服务下面又分别有四个配置

4)dubbo基本上是通过URL的形式进行交互获取数据的,在URL中也会保存很多信息。

提供者会在providers目录下对自身进行注册。
消费者会在consumers目录下进行自身注册并监听providers目录,以此通过监听提供者增加或者减少实现服务发现
监控器会对整个服务级别进行监听,用来获取整体服务情况。并通过此操作更多的对整体情况做监听。
Dubbo源码剖析二之注册中心的更多相关文章
- Dubbo源码解析之registry注册中心
阅读须知 dubbo版本:2.6.0 spring版本:4.3.8 文章中使用/* */注释的方法会做深入分析 正文注册中心是Dubbo的重要组成部分,主要用于服务的注册与发现,我们可以选择Redis ...
- Dubbo源码剖析三之服务注册过程分析
Dubbo源码剖析二之注册中心 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中对注册中心进行了简单的介绍,对Dubbo整合Zookeeper链接源码进行了详细分析.本文接着对服务注册过 ...
- Dubbo源码学习(二)
@Adaptive注解 在上一篇ExtensionLoader的博客中记录了,有两种扩展点,一种是普通的扩展实现,另一种就是自适应的扩展点,即@Adaptive注解的实现类. @Documented ...
- Dubbo源码剖析六之SPI扩展点的实现之Adaptive功能实现原理
接Dubbo源码剖析六之SPI扩展点的实现之getExtensionLoader - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)继续分析Adaptive功能实现原理.Adaptive的主 ...
- Dubbo源码剖析六之SPI扩展点的实现之getExtension
上文Dubbo源码剖析六之SPI扩展点的实现之getExtensionLoader - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中分析了getExtensionLoader,本文继续分 ...
- Dubbo源码剖析一之整体架构设计
Dubbo基础二之架构及处理流程概述 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中进行Dubbo职能上的简单介绍,下面就其内部进行详细探究: 1.Dubbo调用关系 这个图是不是很熟 ...
- Django Rest Framework源码剖析(二)-----权限
一.简介 在上一篇博客中已经介绍了django rest framework 对于认证的源码流程,以及实现过程,当用户经过认证之后下一步就是涉及到权限的问题.比如订单的业务只能VIP才能查看,所以这时 ...
- dubbo源码之二——dubbo入口
dubbo源码版本:2.5.4 dubbo-contaner-api com.alibaba.dubbo.container dubbo-demo-consumer com.alibaba.dubbo ...
- Qt信号槽源码剖析(二)
大家好,我是IT文艺男,来自一线大厂的一线程序员 上节视频给大家讲解了Qt信号槽的基本概念.元对象编译器.示例代码以及Qt宏:今天接着深入分析,进入Qt信号槽源码剖析系列的第二节视频. Qt信号槽的宏 ...
随机推荐
- SpringBoot学习笔记四之后台登录页面的实现
注:图片如果损坏,点击文章链接: https://www.toutiao.com/i6803542216150090252/ 继续之前完成的内容,首先创建一个常量类 常量类的内容 服务器端渲染 前后端 ...
- javascript实现数字整数位每三位一个逗号分隔
Number(1234567).toLocaleString(); //结果"1,234,567" Number(123456789).toLocaleString()//结果&q ...
- 乒乓球队比赛,甲队有abc三人,乙队有xyz三人。 抽签得出比赛名单:a不和x比,c不和x,z比, 利用集合求出比赛名单
import java.util.HashMap; import java.util.Map; /** * 乒乓球队比赛,甲队有abc三人,乙队有xyz三人. * 抽签得出比赛名单:a不和x比,c不和 ...
- SYCOJ#111、吉祥物
题目-吉祥物 (shiyancang.cn) 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,x; 4 int pos(i ...
- Flowable实战(四)BPMN2.0 启动与结束事件
一.BPMN2.0 BPMN2.0规范是一个标准,开源框架和不同供应商都遵循这份标准,使得最终用户不会因为依赖专有解决方案,而被供应商"绑架".有了BPMN2.0标准,不同解决 ...
- 基于Appium的APP自动化测试基础--美团APP的实例
转:https://blog.csdn.net/Tigerdong1/article/details/80159156 前段时间用一种流行语言,一个主流工具,一个实用框架,写了一个美团app自动化测试 ...
- XRecyclerView:实现下拉刷新、滚动到底部加载更多以及添加header功能的RecyclerView
介绍: 一个实现了下拉刷新,滚动到底部加载更多以及添加header功能的的RecyclerView.使用方式和RecyclerView完全一致,不需要额外的layout,不需要写特殊的adater. ...
- day 19 C语言顺序结构基础2
(1).算术运算符和圆括号有不同的运算优先级,对于表达式:a+b+c*(d+e),关于执行步骤,以下说法正确的是[A] (A).先执行a+b的r1,再执行(d+e)的r2,再执行c*r2的r3,最后执 ...
- JavaScript 中BOM的常用操作
JavaScript BOM操作 1.获取浏览器窗口尺寸 var width=window,innerWidth //获取可视窗口宽度 var height=window.innerHeight // ...
- unity3d发布安卓出错plese set the package name
发布时报错 参考https://forum.unity.com/threads/where-is-package-name-setting.318839/ 参考https://answers.unit ...