1.场景
本地调用使用了 injvm 协议,是一个伪协议,它不开启端口,不发起远程调用,只在 JVM 内直接关联,但执行 Dubbo 的 Filter 链。
2.配置
注意:服务暴露与服务引用都需要声明 injvm="true"
1 定义 injvm 协议 2 3 <dubbo:protocol name="injvm" /> 4 5 设置默认协议 6 7 <dubbo:provider protocol="injvm" /> 8 9 设置服务协议 10 11 <dubbo:service protocol="injvm" /> 12 13 优先使用 injvm 14 15 <dubbo:consumer injvm="true" .../> 16 <dubbo:provider injvm="true" .../> 17 18 或 19 20 <dubbo:reference injvm="true" .../> 21 <dubbo:service injvm="true" .../>
3.自动暴露、引用本地服务
从 2.2.0
开始,每个服务默认都会在本地暴露。在引用服务的时候,默认优先引用本地服务。如果希望引用远程服务可以使用一下配置强制引用远程服务。
<dubbo:reference ... scope="remote" />