服务注册
Dubbo 分类
Dubbo当前常用的有2个分支版本,一个是apache dubbo(GroupID是org.apache.dubbo), 一个是dubbox (GroupID是com.alibaba)。两个分支的dubbo,对应不同的接入插件,大家接入之前可以先通过GroupID判断下当前项目依赖的是哪个分支的dubbo。
Apache Dubbo 接入
支持版本
当前只支持dubbo 2.x版本的接入,dubbo 3.x暂未支持。最新版本为 0.2.2
引入依赖
首先,需要将插件 com.tencent.polaris:dubbo-registry-polaris 引入到业务的POM中,插件版本建议使用最新版本:release
- com.tencent.polaris:dubbo-registry-polaris:北极星接入插件
<dependency>
<groupId>com.tencent.polaris</groupId>
<artifactId>dubbo-registry-polaris</artifactId>
<version>${version}</version>
</dependency>
配置北极星注册中心地址
接下来,需要添加北极星registry的配置,指定北极星的地址及相关配置信息,可以通过配置文件及代码的方式进行指定:
配置文件方式添加:
<dubbo:registry address="polaris://127.0.0.1:8091"/>
北极星地址的URL支持通过参数指定可选的配置,具体参数列表如下:
参数 | 类型 | 含义 |
---|---|---|
namespace | 字符串 | 指定服务的命名空间 |
token | 字符串 | 指定用户token |
执行注册
使用Dubbo原生的注册方式把服务注册到北极星上。
// 定义服务
ServiceConfig<DemoServiceImpl> service = new ServiceConfig<>();
service.setInterface(DemoService.class);
service.setRef(new DemoServiceImpl());
// 执行注册并接受请求
DubboBootstrap bootstrap = DubboBootstrap.getInstance();
bootstrap.application(new ApplicationConfig("dubbo-demo-api-provider"))
.registry(registryConfig)
.service(service)
.start()
.await();
如需指定服务实例的其他元数据信息(比如版本等),可以通过在定义服务时,添加parameter的方式进行实现。
ServiceConfig<DemoServiceImpl> service = new ServiceConfig<>();
service.setInterface(DemoService.class);
service.setRef(new MiddleDemoServiceImpl(version, bootstrap));
// 指定实例版本号
service.setParameters(CollectionUtils.toStringMap(CommonConstants.VERSION_KEY, version));
注册后,可以在北极星控制台看到注册后的效果:
样例
服务注册样例可以参考:dubbo-discovery-provider