org.apache.dubbo.registry.client.ServiceDiscovery
SPI,提供自定义的注册中心实现。在 服务发现 一章中,我们了解了 Dubbo 内置的几个核心注册中心实现 Nacos
、Zookeeper
的使用方式与工作原理。本文讲解如何通过扩展 org.apache.dubbo.registry.client.ServiceDiscovery
和 org.apache.dubbo.registry.nacos.NacosServiceDiscoveryFactory
SPI,提供自定义的注册中心实现。
本示例的完整源码请参见 dubbo-registry-etcd。除了本示例之外,Dubbo 核心仓库 apache/dubbo 以及扩展库 apache/dubbo-spi-extensions 中的众多注册中心扩展实现,都可以作为扩展参考实现:
通过扩展 SPI 实现基于的 etcd 注册中心。
首先,通过继承 AbstractServiceDiscoveryFactory
实现 ServiceDiscoveryFactory
接口
EtcdServiceDiscovery
的一些关键方法与实现如下:
在 resources/META-INF/dubbo/org.apache.dubbo.registry.client.ServiceDiscoveryFactory
文件中添加如下配置:
要开启 etcd 作为注册中心,修改应用中的 resources/application.properties
文件中的 registry 配置如下: