1.注册中心概述

​ 在Dubbo微服务体系中,注册中心是其核心组件之一.Dubbo通过注册中心实现了分布式环境中各微服务之间的注册与发现,是各分布式节点之间的纽带.其主要作用如下:

  • 动态加入。一个服务提供者通过注册中心可以动地把自己暴露给其他消费者,无序消费者逐个去更新配置文件;
  • 动态发现。一个消费者可以动态地感知新的配置、路由规则和新的服务提供者,无需重启服务使之生效;
  • 动态调整。注册中心支持参数的动态调整,新参数自动更新到所有相关服务节点;
  • 统一配置。避免了本地配置导致每个服务的配置不一致问题。

Dubbo的注册中心源码在模块dubbo-register中,里面包含了五个子模块,如下所示:

模块名称 模块介绍
dubbo-register-api 包含了注册中心所有API和抽象实现类
dubbo-register-zookeeper 使用zookeeper作为注册中心的实现
dubbo-register-redis 使用redis作为注册中心的实现
dubbo-register-default Dubbo基于内存的默认实现
dubbo-register-multicast multicast模式的服务注册与发现

2.工作流程

  • 服务启动时,会向注册中心写入自己的元数据信息,同时会订阅配置元数据;
  • 消费者启动时也会像注册中心写入自己的元数据,并订阅服务提供者、路由和配置元数据信息;
  • 服务治理中心(dubbo-admin),会同时订阅所有消费者、服务提供者、路由和配置元数据信息;
  • 当所有服务提供者离开或有新的服务提供者加入是,注册中心服务提供者目录会发生变化,变化信息会动态通知给消费者、服务治理中心;
  • 当消费方发起服务调用时,会异步将调用、统计信息等上报给监控中心(dubbo-monitor-simple)。

3.Zookeeper原理概述

Zookeeper是树形结构的注册中心,每个节点的类型分为持久节点、持久顺序节点、临时节点和临时顺序节点。

  • 持久节点:服务注册后保证节点不会丢失,注册中心重启也会存在;
  • 持久顺序节点:在持久节点特性的基础上增加了节点先后顺序的能力;
  • 临时节点:服务注册后连接丢失或session超时,注册的节点会自动被移除;
  • 临时顺序节点:在临时节点特性的基础上增加了节点先后顺序的能力。

Dubbo使用Zookeeper作为注册中心时,只会创建持久节点和临时节点两种,对创建顺序并没有要求。

dubbo早zookeeper中的树形结构如下所示:

+ /dubbo

+ -- servicce 

       +--providers

       +--consumers

      +--routers

   	+--configurators

4.树形结构关系

(1)树的根节点是注册中心分组,下面有多个服务接口,分组值来自用户配置<dubbo:register>中的group属 性;

(2)服务接口下包含4类子目录,分别是providers、consumers、routes、configurators,这个路径是持久节点;

(3)服务提供者目录(/dubbo/service/providers)下面包含的接口有多个服务者URL元数据信息;

(4)服务消费者目录(/dubbo/service/consumers)下面包含的接口有多个消费者URL元数据信息;

(5)路由配置目录(/dubbo/service/routes)下面包含多个消费者路由策略URL元数据信息。

(6)动态配置目录(/dubbo/service/configurators)下面包含多个用于消费者由策略URL元数据信息。

在Dubbo中启用注册中心可参考如下方式:

<beans>
<!--适用于Zookeeper一个集群有多个节点,多个IP和端口用逗号分隔-->
<dubbo:registry protocol="zookeeper" address="ip:port,ip:port" />
<!--适用于Zookeeper一个集群有多个节点,多个IP和端口用竖线分隔-->
<dubbo:registry protocol="zookeeper" address="ip:port|ip:port" />
</beans>

开发dubbo应用程序(二)dubbo注册中心相关概述的更多相关文章

  1. DUBBO高级配置:多注册中心配置

    有时候我们需要的服务不在同一个 zookeeper 注册中心上,此时我们需要在 DUBBO 配置文件中配置多个注册中心. 下面我们在之前创建项目的基础上在 provider 模块中增加一个 IBook ...

  2. 说一下Dubbo 的工作原理?注册中心挂了可以继续通信吗?

    面试题 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程? 面试官心理分析 MQ.ES.Redis.Dubbo,上来先问你一些思考性的问题.原理,比如 kaf ...

  3. 1.说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程?

    作者:中华石杉 面试题 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程? 面试官心理分析 MQ.ES.Redis.Dubbo,上来先问你一些思考性的问题.原 ...

  4. dubbo入门学习(二)-----dubbo hello world

    一.dubbo hello world入门示例 1.提出需求 某个电商系统,订单服务需要调用用户服务获取某个用户的所有地址: 我们现在需要创建两个服务模块进行测试: 模块 功能 订单服务web模块 创 ...

  5. Dubbo源码剖析二之注册中心

    Dubbo基础二之架构及处理流程概述 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中架构中,无论是服务提供者还是服务消费者都离不开注册中心,可见注册中心之重要.Redis.Nacos. ...

  6. dubbo服务治理中间件,zookeeper注册中心

    对传统项目架构进行拆分: 集群概念: 面向服务分布式架构: 服务层提供被注册的对象需要实现序列化接口Serializable: 配置表现层和服务层: 依赖包: 服务层: <!-- 定义dubbo ...

  7. Dubbo源代码实现三:注册中心Registry

    我们知道,对于服务治理框架来说,服务通信(RPC)和服务管理两部分必不可少,而服务管理又分为服务注册.服务发现和服务人工介入,我们来看看Dubbo框架的结构图(来源网络): 图中可以看出,服务提供者P ...

  8. dubbo服务治理中间件,zookeeper注册中心 安装配置

    对传统项目架构进行拆分: 集群概念: 面向服务分布式架构: 服务层提供被注册的对象需要实现序列化接口Serializable: 配置表现层和服务层: 依赖包: 服务层: <!-- 定义dubbo ...

  9. dubbo学习(五)注册中心zookeeper

    初识zookeeper 下载地址:https://archive.apache.org/dist/zookeeper/ 详细的ZooKeeper教程戳这里~ PS: 建议目前选择3.4的稳定版本进行使 ...

随机推荐

  1. flask 简单示例

    flask import flask from flask import jsonify from flask import request # 要获取到请求参数的话,就要导入这个模块 ''' 创建接 ...

  2. 四步理解GloVe!(附代码实现)

    1. 说说GloVe 正如GloVe论文的标题而言,GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & ...

  3. flask实战-个人博客-电子邮件支持

    电子邮件支持 因为博客要支持评论,所以我们需要在文章有了新评论后发邮件通知管理员.而且,当管理员回复了读者的评论后,也需要发送邮件提醒读者. 为了方便读者使用示例程序,personalBlog中仍然使 ...

  4. 什么是amp?amp有什么用处?

    AMP是移动页面加速器Accelerated Mobile Pages的简称,是Google带领开发的开源项目,目的是为提升移动设备对网站的访问速度.它的核心称作AMP HTML,是一种新型的HTML ...

  5. linux cpu信息查看

    转自:https://www.cnblogs.com/emanlee/p/3587571.html # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X ...

  6. input 关键字提示,对于一些特定优化来说,很有用处

    只用html就可以做出提醒操作:效果如下图 这里是代码,怎么样,很简单吧 <form action="/server" method="post"> ...

  7. 配置Maven环境变量-Eclipse/Idea添加Maven

    1. 文件下载 官网下载地址:http://maven.apache.org/download.cgi 下方有我提供的下载链接. 由于下载缓慢,提供一份我的下载链接:https://www.lanzo ...

  8. vue-cli3.0启动项目,在局域网内其他电脑通过自己ip访问

    最近一直在使用vue-cli3.0做项目, package.json中配置后,自启动项目,也就没留意过小黑窗, "scripts": { "serve": &q ...

  9. 抓住九月的尾巴分享一个插件XLSX

    git官网 安装: cnpm install --save xlsx file-saver .vue文件中:1. 引用table插件/自己写table布局 <el-table id=" ...

  10. SQL数据同步到ELK(四)- 利用SQL SERVER Track Data相关功能同步数据(上)

    一.相关文档 老规矩,为了避免我的解释误导大家,请大家务必通过官网了解一波SQL SERVER的相关功能. 文档地址: 整体介绍文档:https://docs.microsoft.com/en-us/ ...