共计 1171 个字符,预计需要花费 3 分钟才能阅读完成。
实现动机
- 绝对于配置核心治理配置数据,注册核心寄存运行时的动静 / 长期状态数据,比方可用的 proxy 的实例,须要禁用或熔断的 datasource 实例。
- 通过注册核心,能够提供熔断数据库拜访程序对数据库的拜访和禁用从库的拜访的编排治理能力。治理依然有大量未实现的性能(比方流控等)。
注册核心数据结构
注册核心在定义的命名空间的 state 下,创立数据库拜访对象运行节点,用于辨别不同数据库拜访实例。包含 instances 和 datasources 节点。
instances
├──your_instance_ip_a@-@your_instance_pid_x
├──your_instance_ip_b@-@your_instance_pid_y
├──....
datasources
├──ds0
├──ds1
├──....
Sharding-Proxy 反对多逻辑数据源,因而 datasources 子节点的名称采纳 schema_name.data_source_name 的模式。
instances
├──your_instance_ip_a@-@your_instance_pid_x
├──your_instance_ip_b@-@your_instance_pid_y
├──....
datasources
├──sharding_db.ds0
├──sharding_db.ds1
├──....
state/instances
数据库拜访对象运行实例信息,子节点是以后运行实例的标识。
运行实例标识由运行服务器的 IP 地址和 PID 形成。运行实例标识均为长期节点,当实例上线时注册,下线时主动清理。
注册核心监控这些节点的变动来治理运行中实例对数据库的拜访等。
state/datasources
能够治理读写拆散从库,可动静增加删除以及禁用。
操作指南
熔断实例
可在 IP 地址 @-@PID 节点写入 DISABLED
(疏忽大小写)示意禁用该实例,删除 DISABLED 示意启用。
Zookeeper 命令如下:
[zk: localhost:2181(CONNECTED) 0] set /your_zk_namespace/your_app_name/state/instances/your_instance_ip_a@-@your_instance_pid_x DISABLED
禁用从库
在读写拆散(或数据分片 + 读写拆散)场景下,可在数据源名称子节点中写入 DISABLED
(疏忽大小写)示意禁用从库数据源,删除 DISABLED 或节点示意启用。
Zookeeper 命令如下:
[zk: localhost:2181(CONNECTED) 0] set /your_zk_namespace/your_app_name/state/datasources/your_slave_datasource_name DISABLED
正文完