微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Dubbo六: API 配置之服务消费者

1. 概述

本文接 《API 配置(二)之服务提供者》 ,分享服务消费者相关的配置。

配置类关系

  • 红框部分,consumer-side

还是老样子,我们先来看一段 《Dubbo 用户指南 —— API 配置》 ,服务消费者的初始化代码

// 当前应用配置
ApplicationConfig application = new ApplicationConfig();
application.setName("yyy");

// 连接注册中心配置
RegistryConfig registry = new RegistryConfig();
registry.setAddress("10.20.130.230:9090");
registry.setUsername("aaa");
registry.setPassword("bbb");

// 注意:ReferenceConfig为重对象,内部封装了与注册中心的连接,以及与服务提供方的连接

// 引用远程服务
ReferenceConfig<XxxService> reference = new ReferenceConfig<XxxService>(); // 此实例很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏
reference.setApplication(application);
reference.setRegistry(registry); // 多个注册中心可以用setRegistries()
reference.setInterface(XxxService.class);
reference.setVersion("1.0.0");

// 和本地bean一样使用xxxService
XxxService xxxService = reference.get(); // 注意:此代理对象内部封装了所有通讯细节,对象较重,请缓存复用

2. AbstractReferenceConfig

com.alibaba.dubbo.config.AbstractReferenceConfig ,实现 AbstractInterfaceConfig ,抽象引用配置类。

3. ConsumerConfig

com.alibaba.dubbo.config.ConsumerConfig ,实现 AbstractReferenceConfig ,服务消费者缺省值配置。

4. ReferenceConfig

com.alibaba.dubbo.config.ReferenceConfig ,服务消费者引用服务配置类

下面,我们进入正戏

在文初的 ReferenceConfig 的初始化示例代码中,最后调用的是 ServiceConfig#get() 方法。从方法的命名,我们可以看出,获取引用服务。该方法要做了如下几件事情:

  1. 进一步初始化 ReferenceConfig 对象。
  2. 校验 ReferenceConfig 对象的配置项。
  3. 使用 ReferenceConfig 对象,生成 dubbo URL 对象数组
  4. 使用 dubbo URL 对象,应用服务

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐