转载自  DubboAPI 配置

以API 配置的方式来配置你的 Dubbo 应用

API 属性与配置项一对一,各属性含义,请参见:配置参考手册,比如:ApplicationConfig.setName("xxx") 对应 <dubbo:application name="xxx" /> 1

服务提供者

import org.apache.dubbo.rpc.config.ApplicationConfig;
import org.apache.dubbo.rpc.config.RegistryConfig;
import org.apache.dubbo.rpc.config.ProviderConfig;
import org.apache.dubbo.rpc.config.ServiceConfig;
import com.xxx.XxxService;
import com.xxx.XxxServiceImpl;// 服务实现
XxxService xxxService = new XxxServiceImpl();// 当前应用配置
ApplicationConfig application = new ApplicationConfig();
application.setName("xxx");// 连接注册中心配置
RegistryConfig registry = new RegistryConfig();
registry.setAddress("10.20.130.230:9090");
registry.setUsername("aaa");
registry.setPassword("bbb");// 服务提供者协议配置
ProtocolConfig protocol = new ProtocolConfig();
protocol.setName("dubbo");
protocol.setPort(12345);
protocol.setThreads(200);// 注意:ServiceConfig为重对象,内部封装了与注册中心的连接,以及开启服务端口// 服务提供者暴露服务配置
ServiceConfig<XxxService> service = new ServiceConfig<XxxService>(); // 此实例很重,封装了与注册中心的连接,请自行缓存,否则可能造成内存和连接泄漏
service.setApplication(application);
service.setRegistry(registry); // 多个注册中心可以用setRegistries()
service.setProtocol(protocol); // 多个协议可以用setProtocols()
service.setInterface(XxxService.class);
service.setRef(xxxService);
service.setVersion("1.0.0");// 暴露及注册服务
service.export();

服务消费者

import org.apache.dubbo.rpc.config.ApplicationConfig;
import org.apache.dubbo.rpc.config.RegistryConfig;
import org.apache.dubbo.rpc.config.ConsumerConfig;
import org.apache.dubbo.rpc.config.ReferenceConfig;
import com.xxx.XxxService;// 当前应用配置
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(); // 注意:此代理对象内部封装了所有通讯细节,对象较重,请缓存复用

特殊场景

下面只列出不同的地方,其它参见上面的写法

方法级设置

...// 方法级配置
List<MethodConfig> methods = new ArrayList<MethodConfig>();
MethodConfig method = new MethodConfig();
method.setName("createXxx");
method.setTimeout(10000);
method.setRetries(0);
methods.add(method);// 引用远程服务
ReferenceConfig<XxxService> reference = new ReferenceConfig<XxxService>(); // 此实例很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏
...
reference.setMethods(methods); // 设置方法级配置...

点对点直连


...ReferenceConfig<XxxService> reference = new ReferenceConfig<XxxService>(); // 此实例很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏
// 如果点对点直连,可以用reference.setUrl()指定目标地址,设置url后将绕过注册中心,
// 其中,协议对应provider.setProtocol()的值,端口对应provider.setPort()的值,
// 路径对应service.setPath()的值,如果未设置path,缺省path为接口名
reference.setUrl("dubbo://10.20.130.230:20880/com.xxx.XxxService"); ...

  1. API使用范围说明:API 仅用于 OpenAPI, ESB, Test, Mock 等系统集成,普通服务提供方或消费方,请采用XML 配置方式使用 Dubbo ↩︎

Dubbo(八)之API 配置相关推荐

  1. 精尽 Dubbo 源码分析 —— API 配置

    1. 概述 Dubbo 的配置目前提供了四种配置方式:1. API 配置 2. 属性配置 3. XML 配置 4. 注解配置 2. 配置一览 我们来看看 dubbo-config-api 的项目结构, ...

  2. dubbo之服务消费者配置

    1:写在前面 在这篇文章 中我们分析了服务提供者配置的相关源码,本文一起来看下服务消费者配置相关的源码,还是看一个通过API 方式配置服务消费者的实例代码: public class Consumer ...

  3. EF里的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射

    为什么80%的码农都做不了架构师?>>>    EF里的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射 I.EF里的默认映射 上篇文章演示 ...

  4. vuejs目录结构启动项目安装nodejs命令,api配置信息思维导图版

    vuejs目录结构启动项目安装nodejs命令,api配置信息思维导图版 vuejs技术交流QQ群:458915921 有兴趣的可以加入 vuejs 目录结构 build build.js check ...

  5. ENSP配置 实例八 三层交换机DHCP配置加VLAN划分实验

    ENSP配置 实例八 三层交换机dhcp配置加vlan划分实验 LW1配置 [SW1]vlan batch 10 20 [SW1-GigabitEthernet0/0/1]port link-type ...

  6. 第三方电商服务商开放八类API接口

    [亿邦动力网讯]1月17日消息,亿邦动力网获悉,手机淘宝微淘将向第三方电商服务商开放八类API接口. 这八类API接口分别为微淘内容类.账号菜单类.分享推广类.手机传感类.交易商品类.地图定位类.互动 ...

  7. Dubbo(八)使用配置类方式实现服务提供者消费者dubbo配置

    本文章基于改dubbo系列前两篇文章中项目进行调整修改 Dubbo(六)使用SpringBoot搭建dubbo服务提供者工程 Dubbo(七)使用SpringBoot搭建dubbo消费者工程 主要调整 ...

  8. Dubbo(RPC原理、Dubbo架构负载均衡配置方式)(2)

    1.Dubbo 的架构图解 上述节点简单说明: Provider: 暴露服务的服务提供方 Consumer: 调用远程服务的服务消费方 Registry: 服务注册与发现的注册中心 Monitor: ...

  9. Dubbo多注册中心配置

    1.Dubbo支持的注册中心 Zookeeper(官方推荐) 优点:支持分布式.很多周边产品. 缺点:受限于Zookeeper软件的稳定性.Zookeeper专门分布式辅助软件,稳定较优 Multic ...

最新文章

  1. openpyxl.utils.exceptions.IllegalCharacterError错误
  2. linux 树莓派查看ip,树莓派 常用Linux命令
  3. 【漫天烟花】绚烂烟花点亮夜空也太美了叭、某程序员携带烟花秀给大家拜年啦~
  4. 19-mysql-约束
  5. 从前M个字母中取N个的无重复排列(回溯)
  6. arduino ps2摇杆程序_PS2手柄在arduino上进行测试,可用,供喜欢diy的朋友借鉴
  7. Node-ES6模块化
  8. L2-014 列车调度(二分)
  9. 【转】 Linux中的工作队列
  10. 十代主板改win7_10代cpu装win7系统及bios设置教程(完美支持10代驱动)
  11. ffmpeg 反复推流_FFmpeg 推流问题记录
  12. 多个Gbase集群间表同步思路
  13. STM32读写FPGA存储器EPCS器件(EPCS1、EPCS4)
  14. 线程池提交执行任务中execute()方法和submit()的区别
  15. movieclip颜色
  16. “蓝桥杯”练习系统——ALGO-847 盾神与简单数独
  17. 喜马拉雅.xm转化为.mp3格式
  18. Laravel Guzzle封装
  19. Java爬取frame的课程表_超级课程表一键提取课程功能app及课表静态网页内容
  20. vue-cli创建项目,webpack运行时在 95% emitting CompressionPlugin卡住不动

热门文章

  1. 7-24 树种统计 (25 分)(详解)map做法 map真香啊!
  2. post获取重定向的链接 python_【转载】python面试基础知识(四) 网络部分
  3. random(随机函数生成)
  4. 笔记本电脑销量排名_网友总结京东笔记本销量,联想高居第一,华为表现很出色...
  5. 微软100题第20题
  6. cfF. Boring Queries
  7. cf600 E. Lomsat gelral
  8. cf1523C. Compression and Expansion
  9. P4062 [Code+#1]Yazid 的新生舞会(线段树做法)
  10. Acwing 232. 守卫者的挑战