Apache Dubbo系列:泛化调用

上一章,我们讲到了Dubbo的线程池策略,本章我们一起探讨,Dubbo如何实现泛化调用的。主要内容包括:

1、什么是泛化调用

2、泛化调用的三种方式

3、如何使用

4、源码分析

 

推荐阅读:

Apache Dubbo系列:集群容错整体架构

Apache Dubbo系列:Dubbo线程模型

Apache Dubbo系列:Dubbo的线程池策略

什么是泛化调用

我们基于Dubbo API搭建Dubbo服务时,服务消费端需要依赖于一个SDK二方包,其中存放这服务提供端提供的所有接口。

泛化调用主要用于,服务提供端没有API接口以及入参出参,参数和返回没有对应的POJO时,所有POJO参数均用Map表示,通常用于框架集成。使用泛化调用时,服务消费端不再需要依赖于二方的SDK。

 

泛化调用的三种方式

在Dubbo中,有三种泛化调用,分别是:generic=true,generic=bean和generic=nativejava,三种调用方式,使用的序列化和反序列化的方式不同。

 

如何使用

下面,用generic=true的方式,演示一下泛化调用怎么用。

Spring的XML配置:

<dubbo:reference id="userService" interface="com.ctx.userService" generic="true" />

 

在代码里,可以这样获取userService并泛化调用


 // 引用远程服务 
// 该实例很重量,里面封装了所有与注册中心及服务提供方连接,请缓存
ReferenceConfig<GenericService> reference = new ReferenceConfig<GenericService>(); 
// 弱类型接口名
reference.setInterface("com.ctx.XxxService");  
reference.setVersion("1.0.0");
// 声明为泛化接口,方式为true
reference.setGeneric(true);

// 用org.apache.dubbo.rpc.service.GenericService可以替代所有接口引用  
GenericService genericService = reference.get(); 
 
// 基本类型以及Date,List,Map等
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值