今晚心情无比激动,多云转晴!原因在于弄懂些 Generic Service 实现原理,很有成就感。
各位看官莫笑,今晚,小小的收获,也是非常满足的。下面进入正题!
一、前言
普遍RPC在客户端需要提供接口,如果不提供则无法进行调用。同时,因为客户端也依赖提供的接口,服务端的升级、优化所带来的更新,客户端也要及时的更新API,否则会带来影响。这样,就带来了依赖接口,常常更新API(接口)的麻烦。为了解决这个问题,需要进行泛化调用。
二、使用
在网上一搜,都是Dubbo的泛化调用的例子,可以很少有讲解它的原理的。也不能为了用个泛化调用,就一定要使用Dubbo吧(个人观点:淘宝内部放弃Dubbo,此外配置繁琐,没有人维护,所以不建议使用)。适合的才是最好的,不能生搬硬套。
我google一下,后来发现sofa-rpc框架,里面有泛化调用(在此推荐大家使用sofa-rpc,具体介绍,自己google),下载源码,debug跟着走几遍,Generic Service 实现原理弄懂了。
demo片段如下(下载sofa-rpc的源码,里面有demo):
1 ConsumerConfig<GenericService> consumerConfig = new ConsumerConfig<GenericService>()