`
george.gu
  • 浏览: 70815 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

异步系统设计: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之后就一定能增加效率吗?我们拭目以待,具体情况具体分析。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics