《注册中心扩展手册》

如果你要扩展一个注册中心,我们先看下注册中心的抽象类。

  1. package com.alipay.sofa.rpc.registry;
  2. @Extensible(singleton = false)
  3. public abstract class Registry implements Initializable, Destroyable {
  4. public abstract boolean start();
  5. public abstract void register(ProviderConfig config);
  6. public abstract void unRegister(ProviderConfig config);
  7. public abstract void batchUnRegister(List<ProviderConfig> configs);
  8. public abstract List<ProviderGroup> subscribe(ConsumerConfig config);
  9. public abstract void unSubscribe(ConsumerConfig config);
  10. public abstract void batchUnSubscribe(List<ConsumerConfig> configs);
  11. }

可以看到我们需要的主要接口。

  • 启动注册中心客户端、维持连接
  • 销毁注册中心客户端、释放资源
  • 发布服务、缓存发布信息
  • 取消发布服务、删除缓存
  • 订阅服务列表、同步或者异步返回数据,有变化接收通知
  • 取消订阅服务列表、删除缓存

其它

  • 注册中心节点断连后,不影响本地调用
  • 和一个注册中心节点断连后,可自己切换到其它注册中心节点
  • 注册中心节点切换后,自动恢复注册和订阅信息
  • 注册中心数据缓存到本地文件,就算连不上任何注册中心,服务提供者和服务调用者也能重启并正常调用