【问题标题】:Service Bus - Am I being dumb?服务巴士 - 我是不是很笨?
【发布时间】:2011-08-25 20:04:06
【问题描述】:

我已经研究 Mass Transit 几个月了,我对其中的可能性非常感兴趣。但是,我似乎无法完全正确地理解这些概念。我查看了代码,也浏览了文档,但我只是不觉得我理解它。

一般的例子显示;

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

现在,我明白这是在做什么了,但我认为我的大脑并没有比这更进一步。以下是我的理解;

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

我只是想多了解一点。我认为我没有得到它。我需要配置一个服务器来监听吗?我是否在我的软件中设置它然后只是发布消息,它们被从内部拾取和处理?

【问题讨论】:

    标签: publish-subscribe servicebus masstransit


    【解决方案1】:

    首先,开始使用 MassTransit...

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

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

    如果您对此主题有更多问题,我会尝试访问邮件列表。我想相信我们会在可能的情况下做出反应。此外,您还可以找到一些相关的问题和书籍...

    Enterprise Integration Patterns 是一本很棒的书,即使是在编写时更多地考虑了 Java。

    【讨论】:

    • 谢谢 Travis。我认为使用 MT 的多种方式以及我的想法妨碍了我。我希望下周能够阅读更多内容。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 2015-06-15
    • 2020-06-28
    • 1970-01-01
    • 2019-03-21
    • 2020-09-06
    • 1970-01-01
    相关资源
    最近更新 更多