推荐阅读:
- 阿里二面凉经:设计模式+缓存+Spring+虚拟机+MySQL+中间件+并发等难题,全部迎刃而解
- 阿里巴巴字节跳动那些大厂必问的HTTP该怎么学?我建议你看看这篇文章!
- 蚂蚁、字节、PDD社招面经Java岗(分布式+线程安全+MySQL+CAS)
Dubbo是一个远程调用的框架,对于一个服务提供者,暴露了一个接口供外部消费者调用,
那么对于提供者自己是否可以调用这个接口,需要什么特殊处理吗?
这篇文章就分享下Dubbo关于本地调用的实现机制,以及如何开启和关闭本地调用。
injvm支持本地调用
使用 Dubbo 本地调用不需做特殊配置,按正常 Dubbo 服务暴露服务即可。
任一服务在暴露远程服务的同时,也会同时以 injvm 的协议暴露本地服务。
injvm 是一个伪协议,不会像其他协议那样对外开启端口,只用于本地调用的目的。
InjvmProtocol源码学习
injvm相关的代码实现在Dubbo-rpc-injvm模块中,主要是InjvmExporter、InjvmInvoker和InjvmProtocol。
InjvmProtocol 继承 AbstractProtocol,
public class InjvmProtocol extends AbstractProtocol implements Protocol {
public static final Strin

本文介绍了Dubbo如何支持本地调用,重点解析InjvmProtocol,阐述了本地调用的开启、关闭以及其经过Filter链的特性。默认情况下,Dubbo本地调用自动开启,但可以通过scope配置关闭。当配置为scope='remote'时,即使是本地调用者,也会遵循远程调用流程。
最低0.47元/天 解锁文章
5203

被折叠的 条评论
为什么被折叠?



