阿里云首页 SOFAStack 微服务

自定义 Registry

本文介绍如何自定义注册中心。

如果您要自定义一个注册中心,先看下注册中心的抽象类。

package com.alipay.sofa.rpc.registry;

@Extensible(singleton =false)
public abstract class Registry implements Initializable,Destroyable{
public abstract boolean start();
public abstract void register(ProviderConfig config);
public abstract void unRegister(ProviderConfig config);
public abstract void batchUnRegister(List<ProviderConfig> configs);
public abstract List<ProviderGroup> subscribe(ConsumerConfig config);
public abstract void unSubscribe(ConsumerConfig config);
public abstract void batchUnSubscribe(List<ConsumerConfig> configs);
}

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

  • 启动注册中心客户端、维持连接

  • 销毁注册中心客户端、释放资源

  • 发布服务、缓存发布信息

  • 取消发布服务、删除缓存

  • 订阅服务列表、同步或者异步返回数据,有变化接收通知

  • 取消订阅服务列表、删除缓存

其它

  • 注册中心节点断连后,不影响本地调用

  • 和一个注册中心节点断连后,可自己切换到其它注册中心节点

  • 注册中心节点切换后,自动恢复注册和订阅信息

  • 注册中心数据缓存到本地文件,就算连不上任何注册中心,服务提供者和服务调用者也能重启并正常调用