Dubbo本地调用、参数回调、事件通知(八)

1、参考

本地调用:http://dubbo.apache.org/en-us/docs/user/demos/local-call.html

参数回调:http://dubbo.apache.org/en-us/docs/user/demos/callback-parameter.html

事件通知:http://dubbo.apache.org/zh-cn/docs/user/demos/events-notify.html

2、本地调用

如果Consumer与Provider部署在一台主机上,共用一个JVM,那么当Consumer调用Provider时就没有必要经过网络栈,直接调用即可,不需要通过网络,便是Dubbo的其它Filtter正常生效。

对于Provider端而言,从2.2.0开始默认自动支持本地调用,无需任务特殊配置。值得注意的是,如果只打算让Provider提供的服务支持本地调用,可以把服务的protocol设置成injvm一个协议。这样,被配置的服务将不用支持远程调用,服务在运行时也不会开端口。

对于Consumer端而言,当调用某个服务时,如果它在本地已经暴露,则默认直接调用,这个是从2.2.0开始后的默认行为。如果想关掉此行为,则如下配置:

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

有点鸡肋的功能,为服务本身就是要将功能打散然后分布到系统中的多个节点上,为什么会分布在一个节点上呢?另个就算不走injvm,走其它协议,开销能有多大呢?不能指着把服务部署在相同节点上节省网络流量吧。

3、参数回调

抛开Dubbo,在普通的开发中,当调用一个方法时,我们可能在参数中给方法传递一个引用,然后方法在执行的过程中调用引中的一个方法,这就是普通的回调。

Dubbo也有类似功能,Dubbo 将基于长连接生成反向代理,Consumer端临时允当Provider端,Provider端调用的接口,真正的逻辑将在Consumer端执行。

服务端接口示例,CallbackService.java:

package com.callback;
 
public interface CallbackService {
    void addListener(String
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值