@Extension(value="zookeeper") public class ZookeeperRegistry extends Registry
简单的Zookeeper注册中心,具有如下特性:
1.可以设置优先读取远程,还是优先读取本地备份文件
2.如果zk不可用,自动读取本地备份文件
3.可以设置使用临时节点还是永久节点
4.断线了会自动重连,并且自动recover数据
在zookeeper上存放的数据结构为:
-$rootPath (根路径)
└--sofa-rpc
|--com.alipay.sofa.rpc.example.HelloService (服务)
| |-providers (服务提供者列表)
| | |--bolt://192.168.1.100:22000?xxx=yyy [1]
| | |--bolt://192.168.1.110:22000?xxx=yyy [1]
| | └--bolt://192.168.1.120?xxx=yyy [1]
| |-consumers (服务调用者列表)
| | |--bolt://192.168.3.100?xxx=yyy []
| | |--bolt://192.168.3.110?xxx=yyy []
| | └--bolt://192.168.3.120?xxx=yyy []
| |-configs (接口级配置)
| | |--invoke.blacklist ["xxxx"]
| | └--monitor.open ["true"]
| └overrides (IP级配置)
| | └--bolt://192.168.3.100?xxx=yyy []
|--com.alipay.sofa.rpc.example.EchoService (下一个服务)
| ......
Destroyable.DestroyHook| 限定符和类型 | 字段和说明 |
|---|---|
static String |
PARAM_CREATE_EPHEMERAL
配置项:是否使用临时节点。
|
static String |
PARAM_PREFER_LOCAL_FILE
配置项:是否本地优先
|
registryConfig| 限定符 | 构造器和说明 |
|---|---|
protected |
ZookeeperRegistry(RegistryConfig registryConfig)
注册中心配置
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
batchUnRegister(List<ProviderConfig> configs)
反注册服务提供者
|
void |
batchUnSubscribe(List<ConsumerConfig> configs)
反订阅服务调用者相关配置
|
void |
destroy()
销毁接口
|
void |
destroy(Destroyable.DestroyHook hook)
Do destroy with hook.
|
protected org.apache.curator.framework.CuratorFramework |
getZkClient() |
void |
init()
初始化
|
void |
register(ProviderConfig config)
注册服务提供者
|
boolean |
start()
启动
|
List<ProviderGroup> |
subscribe(ConsumerConfig config)
订阅服务列表
|
protected void |
subscribeConfig(AbstractInterfaceConfig config,
ConfigListener listener)
订阅接口级配置
|
protected void |
subscribeOverride(ConsumerConfig config,
ConfigListener listener)
订阅IP级配置(服务发布暂时不支持动态配置,暂时支持订阅ConsumerConfig参数设置)
|
void |
unRegister(ProviderConfig config)
反注册服务提供者
|
void |
unSubscribe(ConsumerConfig config)
反订阅服务调用者相关配置
|
protected ZookeeperRegistry(RegistryConfig registryConfig)
registryConfig - 注册中心配置public void init()
Initializablepublic void destroy()
Destroyablepublic void destroy(Destroyable.DestroyHook hook)
Destroyabledestroy 在接口中 Destroyabledestroy 在类中 Registryhook - DestroyHookpublic void register(ProviderConfig config)
Registryprotected void subscribeConfig(AbstractInterfaceConfig config, ConfigListener listener)
config - provider/consumer configlistener - config listenerprotected void subscribeOverride(ConsumerConfig config, ConfigListener listener)
config - consumer configlistener - config listenerpublic void unRegister(ProviderConfig config)
RegistryunRegister 在类中 Registryconfig - Provider配置public void batchUnRegister(List<ProviderConfig> configs)
RegistrybatchUnRegister 在类中 Registryconfigs - Provider配置public List<ProviderGroup> subscribe(ConsumerConfig config)
Registrypublic void unSubscribe(ConsumerConfig config)
RegistryunSubscribe 在类中 Registryconfig - Consumer配置public void batchUnSubscribe(List<ConsumerConfig> configs)
RegistrybatchUnSubscribe 在类中 Registryconfigs - Consumer配置protected org.apache.curator.framework.CuratorFramework getZkClient()
Copyright © 2008–2018 The Ant Financial. All rights reserved.