开发dubbo应用程序(二)dubbo注册中心相关概述
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注册中心相关概述的更多相关文章
- DUBBO高级配置:多注册中心配置
有时候我们需要的服务不在同一个 zookeeper 注册中心上,此时我们需要在 DUBBO 配置文件中配置多个注册中心. 下面我们在之前创建项目的基础上在 provider 模块中增加一个 IBook ...
- 说一下Dubbo 的工作原理?注册中心挂了可以继续通信吗?
面试题 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程? 面试官心理分析 MQ.ES.Redis.Dubbo,上来先问你一些思考性的问题.原理,比如 kaf ...
- 1.说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程?
作者:中华石杉 面试题 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程? 面试官心理分析 MQ.ES.Redis.Dubbo,上来先问你一些思考性的问题.原 ...
- dubbo入门学习(二)-----dubbo hello world
一.dubbo hello world入门示例 1.提出需求 某个电商系统,订单服务需要调用用户服务获取某个用户的所有地址: 我们现在需要创建两个服务模块进行测试: 模块 功能 订单服务web模块 创 ...
- Dubbo源码剖析二之注册中心
Dubbo基础二之架构及处理流程概述 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中架构中,无论是服务提供者还是服务消费者都离不开注册中心,可见注册中心之重要.Redis.Nacos. ...
- dubbo服务治理中间件,zookeeper注册中心
对传统项目架构进行拆分: 集群概念: 面向服务分布式架构: 服务层提供被注册的对象需要实现序列化接口Serializable: 配置表现层和服务层: 依赖包: 服务层: <!-- 定义dubbo ...
- Dubbo源代码实现三:注册中心Registry
我们知道,对于服务治理框架来说,服务通信(RPC)和服务管理两部分必不可少,而服务管理又分为服务注册.服务发现和服务人工介入,我们来看看Dubbo框架的结构图(来源网络): 图中可以看出,服务提供者P ...
- dubbo服务治理中间件,zookeeper注册中心 安装配置
对传统项目架构进行拆分: 集群概念: 面向服务分布式架构: 服务层提供被注册的对象需要实现序列化接口Serializable: 配置表现层和服务层: 依赖包: 服务层: <!-- 定义dubbo ...
- dubbo学习(五)注册中心zookeeper
初识zookeeper 下载地址:https://archive.apache.org/dist/zookeeper/ 详细的ZooKeeper教程戳这里~ PS: 建议目前选择3.4的稳定版本进行使 ...
随机推荐
- centos下直接使用命令备份mysql数据库
mysqldump -u root -p 要备份的数据库名> /home/mysql/backup/db/back/数据库名.sql
- 微信小程序+php 授权登陆,完整代码
先上图 实现流程: 1.授权登陆按钮和正文信息放到了同一个页面,未授权的时候显示登陆按钮,已授权的时候隐藏登陆按钮,显示正文信息,当然也可以授权和正文分开成两个页面,在授权页面的onlo ...
- 【前端_React】Node.js和webpack的安装
第一步——安装Node.js 首先要安装Node.js,Node.js自带了软件包管理工具npm,可以使用npm安装各种插件.Node.js的下载地址 可以自定义安装到指定的路径下,待安装完成后命令行 ...
- 部署LNMP应用平台
一.LNMP应用平台概述 1.概述:LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/ ...
- AjAX2 异步通信 异常处理
<!DOCTYPE html> <html lang="en"> <head> <title>xmlhttprequest ajax ...
- 排序算法-基数排序(Java)
package com.rao.sort; import java.util.*; /** * @author Srao * @className RadioSort * @date 2019/12/ ...
- 奇技淫巧and板子
目录 求第\(k\)大的数 求长度不小于L的子段使之和最大 ST表 \(O(1)\)实现能查询栈中最小元素 二分 树和图的深度优先遍历和广度优先遍历 树的dfs序 求树的重心 图的联通块划分 拓扑排序 ...
- 第03组 Beta冲刺(4/4)
队名:不等式方程组 组长博客 作业博客 团队项目进度 组员一:张逸杰(组长) 过去两天完成的任务: 文字/口头描述: 制定了初步的项目计划,并开始学习一些推荐.搜索类算法 GitHub签入纪录: 暂无 ...
- Java实现AES加密(window机器和linux机器) 注意window机器 和linux机器算法稍有不同
一)什么是AES? 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用. ...
- SQL Server表 & 存储过程 创建日期查询
查询表创建时间 SELECT [name] ,create_date ,modify_date FROM sys.tables ORDER BY modify_date DESC 查下存储过程创建时间 ...