`

dubbo源代码-InjvmProtocol

阅读更多
本地调用,使用了Injvm协议,是一个伪协议,它不开启端口,不发起远程调用,只在JVM内直接关联,但执行Dubbo的Filter链。
Define injvm protocol:

<dubbo:protocolname="injvm"/>
Set default protocol:

<dubbo:providerprotocol="injvm"/>
Set service protocol:

<dubbo:serviceprotocol="injvm"/>
Use injvm first:

<dubbo:consumerinjvm="true".../>
<dubbo:providerinjvm="true".../>


<dubbo:referenceinjvm="true".../>
<dubbo:serviceinjvm="true".../>
注意:服务暴露与服务引用都需要声明injvm="true"
自动暴露、引用本地服务

从 dubbo 2.2.0 开始,每个服务默认都会在本地暴露;在引用服务的时候,默认优先引用本地服务;如果希望引用远程服务可以使用一下配置强制引用远程服务。

...
    <dubbo:reference...scope="remote"/>

经过测试,用上面的方法无法实现在本地调用,经过在一个jvm中同时启动provider和consumer,以及分为两个jvm,分别起provider和consumer,都未成功
另:用dubbo源代码自带的测试用例编码方式可以实现
DemoService service = new DemoServiceImpl();
Exporter<?> exporter = protocol.export(proxy.getInvoker(service, DemoService.class, URL.valueOf("injvm://127.0.0.1/TestService").addParameter(Constants.INTERFACE_KEY, DemoService.class.getName())));
        exporters.add(exporter);
service = proxy.getProxy(protocol.refer(DemoService.class, URL.valueOf("injvm://127.0.0.1/TestService").addParameter(Constants.INTERFACE_KEY, DemoService.class.getName())));
assertEquals(service.getSize(new String[]{"", "", ""}), 3);
service.invoke("injvm://127.0.0.1/TestService", "invoke");
分享到:
评论

相关推荐

    dubbo-demo-consumer、dubbo-demo-provider、dubbo-simple-monitor

    dubbo-demo-consumer、dubbo-demo-provider、dubbo-simple-monitor实例服务

    jmeter-plugins-dubbo-2.7.8-jar-with-dependencies.jar

    jmeter的dubbo插件,jmeter-plugins-dubbo-2.7.8-jar-with-dependencies.jar,适用于JMeter5.4.1版本,将解压后的文件jmeter-plugins-dubbo-2.7.8-jar-with-dependencies放在Jmeter安装目录下的\lib\ext文件夹中,...

    dubbo-admin-2.5.4.war

    dubbo-admin-2.5.4提供支持JDK1.7及JDK1.8的War包 Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看...

    dubbo-admin-2.5.4.war后台管理

    dubbo-admin-2.5.4.war管理控制台,进过测试,可以用,有需要的朋友请下载

    dubbo-dubbo-2.7.3.rar

    dubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo...

    jmeter-plugins-dubbo-2.7.1-jar-with-dependencies

    jmeter-plugins-dubbo-2.7.1-jar-with-dependencies 系统压测工具包

    dubbo-monitor-simple-2.6.1.tgz

    dubbo官方自带了dubbo-admin及dubbo-simple/dubbo-monitor-simple二个子项目用于服务治理及服务监控。 dubbo-monitor-simple是Alibaba的开源项目,用于监控在dubbo框架下接口暴露,注册情况,也可以看接口的调用...

    dobbo源码dubbo-dubbo-2.7.3.rar

    dobbo源码dubbo-dubbo-2.7.3.rardobbo源码dubbo-dubbo-2.7.3.rardobbo源码dubbo-dubbo-2.7.3.rardobbo源码dubbo-dubbo-2.7.3.rardobbo源码dubbo-dubbo-2.7.3.rardobbo源码dubbo-dubbo-2.7.3.rardobbo源码dubbo-dubbo...

    dubbo-admin-2.8.4.war

    dubbo 最新dubbo-admin-2.8.4.war 菜单报错已修改。

    dubbo监控中心dubbo-monitor-simple

    该包为dubbo-monitor,使用方法请参见博文 《Dubbo进阶(五)—— dubbo-monitor-simple使用》 https://blog.csdn.net/sunhuaqiang1/article/details/80141478

    可用的dubbo-admin-2.5.3.war工具

    可用的dubbo-admin-2.5.3.war工具,亲测可用。dubbo-admin-2.5.3.war,源码编辑的war包,注意是jdk1.8以下。本地环境默认安装zookeeper后可放到tomcat下直接运行。

    incubator-dubbo-ops-master.rar

    incubator-dubbo-ops-master.rar dubbo-admin 控制台 与 dubbo-monitor-simple 可视化监控

    dubbo-monitor-simple-2.5.8-assembly.tar.gz

    dubbo-monitor-simple-2.5.8-assembly-DUBBO监控工具,

    dubbo-admin-2.5.4-SNAPSHOT.war

    dubbo-admin-2.5.4-SNAPSHOT,dubbo的后台管理war,可以通过这个查看到注册中心的消费提供着和消费者,还有监测着的信息

    dubbo-admin-2.8.4

    dubbo-admin-2.8.4。后台管理工具,直接放在tomcat中运行。

Global site tag (gtag.js) - Google Analytics