服务巴士 - 我愚蠢吗?

时间:2011-08-25 20:04:06

标签: publish-subscribe servicebus masstransit

我已经看了几个月的公共交通,我对这些可能性非常感兴趣。但是,我似乎无法将这些概念完全正确。我查看了代码,并且我已经阅读了文档,但我感觉不到我理解它。

一般的例子显示;

    Bus.Initialize( sbc =>
                       {
                           sbc.UseMsmq( );
                           sbc.VerifyMsmqConfiguration( );
                           sbc.UseMulticastSubscriptionClient( );
                           sbc.ReceiveFrom( "msmq://localhost/myqueue" );
                       } );

现在,我明白这是做什么的,但我认为我的大脑并不比这更进一步。这就是我所理解的;

  • 可以从软件发布消息,并在服务总线内订阅消息,以便在收到该消息时执行操作。
  • 服务总线本身位于消息队列(MTM中的RabbitMQ或MSMQ)之上

我只想更多地了解这一点。我不认为我得到它。我是否需要配置服务器,正在收听?我是否在我的软件中进行设置然后只发布消息,从内部获取并处理它们?

1 个答案:

答案 0 :(得分:4)

首先,开始使用MassTransit ......

这个想法是你有多个系统进行通信。现在这只是消息传递,并不真正需要MassTransit。 AB进行对话。当我们开始讨论pub / sub时,它会变得更有趣。 A发布CreateOrder正在侦听的消息B。当B收到CreateOrder消息时,它可以采取处理新订单所需的任何步骤。这使服务分离,唯一的交互点是一个非常简单的消息,CreateOrder

现在,pub / sub的乐趣在于AB来回徘徊了一段时间,我们C想要收听CreateOrder消息,以便它可以在B完成所有任务之前为发货准备库存。我们可以将C放入总线,它会订阅CreateOrder消息,AB都不需要更改任何代码。这可以在他们主动发送来回消息时完成。您需要升级其中一个成员吗?只需停止该服务,放入新服务,然后重新启动它,允许它从停止的位置选择它。

如果您对此主题有更多疑问,我会尝试点击邮件列表。我想相信我们在可能的时候会很敏感。此外,你可以找到几个相关的问题和书籍......

企业集成模式是一本很好的书,即使是在考虑更多Java时也是如此。