您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
分布式治理——注册中心与第三方组件依赖
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
分布式治理——注册中心与第三方组件依赖
Apache ShardingSphere
2021-01-19
IP归属:未知
973浏览
# 注册中心 ## 实现动机 - 相对于配置中心管理配置数据,注册中心存放运行时的动态/临时状态数据,比如可用的 ShardingSphere 的实例,需要禁用或熔断的数据源等。 - 通过注册中心,可以提供熔断数据库访问程序对数据库的访问和禁用从库的访问的编排治理能力。治理模块仍然有大量未完成的功能(比如流控等)。 ## 注册中心数据结构 注册中心在定义的命名空间的 `states` 节点下,创建数据库访问对象运行节点,用于区分不同数据库访问实例。包括 `proxynodes` 和 `datanodes` 节点。 ``` namespace ├──states ├ ├──proxynodes ├ ├ ├──${your_instance_ip_a}@${your_instance_pid_x}@${UUID} ├ ├ ├──${your_instance_ip_b}@${your_instance_pid_y}@${UUID} ├ ├ ├──.... ├ ├──datanodes ├ ├ ├──${schema_1} ├ ├ ├ ├──${ds_0} ├ ├ ├ ├──${ds_1} ├ ├ ├──${schema_2} ├ ├ ├ ├──${ds_0} ├ ├ ├ ├──${ds_1} ├ ├ ├──.... ``` ### /states/proxynodes 数据库访问对象运行实例信息,子节点是当前运行实例的标识。 运行实例标识由运行服务器的 IP 地址和 PID 构成。运行实例标识均为临时节点,当实例上线时注册,下线时自动清理。 注册中心监控这些节点的变化来治理运行中实例对数据库的访问等。 ### /states/datanodes 可以治理读写分离从库,可动态添加删除以及禁用。 ## 操作指南 ### 熔断实例 可在 `IP地址@PID@UUID` 节点写入 `DISABLED`(忽略大小写)表示禁用该实例,删除 `DISABLED` 表示启用。 Zookeeper 命令如下: ``` [zk: localhost:2181(CONNECTED) 0] set /${your_zk_namespace}/states/proxynodes/${your_instance_ip_a}@${your_instance_pid_x}@${UUID} DISABLED ``` ### 禁用从库 在读写分离场景下,可在数据源名称子节点中写入 `DISABLED`(忽略大小写)表示禁用从库数据源,删除 `DISABLED` 或节点表示启用。 Zookeeper 命令如下: ``` [zk: localhost:2181(CONNECTED) 0] set /${your_zk_namespace}/states/datanodes/${your_schema_name}/${your_replica_datasource_name} DISABLED ``` # 第三方组件依赖 Apache ShardingSphere 在数据库治理模块使用 SPI 方式载入数据到配置中心和注册中心,进行实例熔断和数据库禁用。 目前,Apache ShardingSphere 内部支持 ZooKeeper,Etcd,Apollo 和 Nacos 等常用的配置中心/注册中心。 此外,开发者可以使用其他第三方组件,并通过 SPI 的方式注入到 Apache ShardingSphere,从而使用该配置中心和注册中心,实现数据库治理功能。 | | *实现驱动* | *版本* | *配置中心* | *注册中心* | | --------------------------------------------- | ---------------------------------------------------- | ------ | ---------- | --------- | | [Zookeeper](https://zookeeper.apache.org/) | [Apache Curator](http://curator.apache.org/) | 3.6.x | 支持 | 支持 | | [Etcd](https://etcd.io/) | [jetcd](https://github.com/etcd-io/jetcd) | v3 | 支持 | 支持 | | [Apollo](https://github.com/ctripcorp/apollo) | [Apollo Client](https://github.com/ctripcorp/apollo) | 1.5.0 | 支持 | 不支持 | | [Nacos](https://nacos.io/zh-cn/docs/sdk.html) | [Nacos Client](https://nacos.io/zh-cn/docs/sdk.html) | 1.0.0 | 支持 | 不支持 |
原创文章,需联系作者,授权转载
上一篇:分布式治理——配置中心
下一篇:分布式治理——可观察性
Apache ShardingSphere
文章数
96
阅读量
276959
作者其他文章
01
突破关系型数据库桎梏:云原生数据库中间件核心剖析
数据库技术的发展与变革方兴未艾,NewSQL的出现,只是将各种所需技术组合在一起,而这些技术组合在一起所实现的核心功能,推动着云原生数据库的发展。 NewSQL的三种分类中,新架构和云数据库涉及了太多与数据库相关的底层实现,为了保证本文的范围不至太过发散,我们重点介绍透明化分片数据库中间件的核心功能与实现原理,另外两种类型的NewSQL在核心功能上类似,但实现原理会有所差别。
01
Apache ShardingSphere数据脱敏全解决方案详解(上)
Apache ShardingSphere针对新业务上线、旧业务改造分别提供了相应的全套脱敏解决方案。
01
从中间件到分布式数据库生态,ShardingSphere 5.x革新变旧
5.x 是 Apache ShardingSphere从分库分表中间件向分布式数据库生态转化的里程碑,从 4.x 版本后期开始打磨的可插拔架构在 5.x 版本已逐渐成型,项目的设计理念和 API 都进行了大幅提升。欢迎大家测试使用!
01
Shardingsphere整合Narayana对XA分布式事务的支持(4)
ShardingSphere对于XA方案,提供了一套SPI解决方案,对Narayana进行了整合,Narayana初始化流程,开始事务流程,获取连接流程,提交事务流程,回滚事务流程。
最新回复
丨
点赞排行
共0条评论
Apache ShardingSphere
文章数
96
阅读量
276959
作者其他文章
01
突破关系型数据库桎梏:云原生数据库中间件核心剖析
01
Apache ShardingSphere数据脱敏全解决方案详解(上)
01
从中间件到分布式数据库生态,ShardingSphere 5.x革新变旧
01
Shardingsphere整合Narayana对XA分布式事务的支持(4)
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号