Dubbo -- 关于 api接口调用不使用强依赖
首先,我们都知道 Dubbo 调用api 需要提供暴露 接口, 消费端才通过 ZK 可以调用
通常我们都会使用 提供 api jar包 的方式 使用 这样既方便又快捷 简单
只需要在spring中配置就ok了.
可与此同时,也会有一个问题存在.
那就是 api jar 强依赖, 也就是说 一旦有新的api 需要添加的时候 就需要更新jar包
那么如何避免这样的问题.
基于使用的gateway 的思想 阐述一下:
其实很简单. 那就服务提供者还是一样的暴露接口. 这个不变.
但 服务端需要提供一个入口, 也就是我们说的controller 参数请求 分别为 group api method
这里使用 @PathVariable 传递 这样服务端其实就已经知道我们需要调用的接口api 及 method
然后 再通过 Dubbo 提供的 (ReferenceBean) 创建消费 并将我们传递的参数设置给 ReferenceBean 最后调用 genericService.$invoke(method, types, args) 执行请求
这个就相当于我们消费端 在 spring application中配置的消费端一样
消费端 使用HttpClient 也就是http请求 请求服务端 这样就可以避免Duboo api jar包强依赖的问题了!
同样存在问题 http请求 相对dubbo请求 效率一定不如dubbo;