异步系统设计:push vs pull

今天讨论问题时,有个同事说系统A是主动去系统B里“拿”消息,我们把它称为“pull”模式。他认为pull方式效率比较低,为什么不用“push”模式呢。就是说让系统B收到消息主动通知并把消息发给系统A。

我认为他说的是对的。

可是老板给我们讲了一个故事,让我觉得单纯从模式的角度来探讨系统性能有点“坐井观天”。

如果系统B通知系统A之后,系统A会消费这条消息,如果这个处理过程包含一系列的复杂操作,那么这个时候系统B在做什么呢?在等!系统B block等待系统A的返回境况。哈哈,我们发现系统B的效率很慢,但是不是有本身引起的。

 

我们就不能简单地说push就比pull好了。

事实上,以上的情况可以通过系统B-->JMS Queue-->系统A解决。也就是:

push into JMS Queue

pull from JMS Queue

让两个系统松散耦合。

 

可是引入JMS之后就一定能增加效率吗?我们拭目以待,具体情况具体分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值