服务发现

Dubbo 分类

Dubbo当前常用的有2个分支版本,一个是apache dubbo(GroupID是org.apache.dubbo), 一个是dubbox (GroupID是com.alibaba)。两个分支的dubbo,对应不同的接入插件,大家接入之前可以先通过GroupID判断下当前项目依赖的是哪个分支的dubbo。

Apache Dubbo 接入

支持版本

当前只支持dubbo 2.x版本的接入,dubbo 3.x暂未支持。

引入依赖

首先,需要将插件 org.apache.dubbo.extensions:dubbo-registry-polaris 引入到业务的POM中,插件版本建议使用最新版本:release

  • org.apache.dubbo.extensions:dubbo-registry-polaris:北极星接入插件
  1. <dependency>
  2. <groupId>org.apache.dubbo.extensions</groupId>
  3. <artifactId>dubbo-registry-polaris</artifactId>
  4. <version>1.0.0</version>
  5. </dependency>

配置北极星注册中心地址

接下来,需要添加北极星registry的配置,指定北极星的地址及相关配置信息,可以通过配置文件及代码的方式进行指定:

配置文件方式添加:

  1. <dubbo:registry address="polaris://127.0.0.1:8091"/>

执行服务发现及调用

使用Dubbo原生的方式执行服务发现和调用,由于dubbo支持多种调用方式,样例只展示其中一种,其他调用方式也都支持。

  1. // 获取服务引用
  2. ReferenceConfig<DemoService> reference = new ReferenceConfig<>();
  3. reference.setInterface(DemoService.class);
  4. reference.setGeneric("true");
  5. //指定注册中心地址
  6. DubboBootstrap bootstrap = DubboBootstrap.getInstance();
  7. bootstrap.application(new ApplicationConfig("dubbo-demo-api-consumer"))
  8. .registry(new RegistryConfig("polaris://127.0.0.1:8091"))
  9. .reference(reference)
  10. .start();
  11. //执行服务调用
  12. DemoService demoService = ReferenceConfigCache.getCache().get(reference);
  13. String message = demoService.sayHello("dubbo");
  14. System.out.println(message);

样例

服务发现样例可以参考:dubbo-discovery-consumer