【问题标题】:RabbitMQ vs NServiceBus [closed]RabbitMQ vs NServiceBus [关闭]
【发布时间】:2021-06-22 19:57:13
【问题描述】:

我希望将 RabbitMQ 或 NServicebus 添加到我的环境中,以实现微服务之间的异步消息传递。

RabbitMQ 和 NServiceBus 有什么区别?我认为 RabbitMQ 更适合,因为它在人们做过类似事情的文章中被提及。如果 RabbitMQ 是最好的,我会用 NServiceBus 做什么?

【问题讨论】:

    标签: asp.net-core rabbitmq microservices nservicebus


    【解决方案1】:

    “RabbitMQ 与 NServiceBus”的问题实际上应该是“本机消息传递技术与消息传递中间件”的问题。

    首先,如果没有 RabbitMQ,NServiceBus 就不会存在。或 Azure 服务总线。或亚马逊 SQS。所有这些消息传递技术之间的联系是开发您的解决方案的能力,该解决方案与消息传递技术无关,并且可以从大部分本地技术所提供的东西中受益。是苹果对苹果的比较吗?不。作为中间件抽象的 NServiceBus 是固执己见的,并且有一些规定的东西。通常,这些会由您从抽象中获得的价值来补偿。这带来了下一点。

    专注于您的系统/业务,而不是消息传递技术。序列化/反序列化、重试、处理失败的消息、连接、审计、消息对话、关联、长时间运行的消息、乱序消息、批处理等。列表很长。 NServiceBus 负责这一点。显然,如果您不需要其中的 95% 并且有一个简单的场景,那么抽象是多余的。但是如果你有一些不是那么微不足道的事情呢?

    认为大部分投资发生在初始开发阶段的假设是错误的。当初始开发结束时,成本影响正在逐渐增加——需要那些小的错误修复、SDK 更改和微小的添加。通常,当参与自主解决方案的开发人员不再对特定技术感兴趣时。或者更好的是,转移到某事或其他地方。现在您有两个项目,只有一个预算。一个是业务系统,另一个是已经成为成熟框架的国产消息中间件。

    我认为 RabbitMQ 更适合,因为它在人们做过类似事情的文章中被提及。

    我不会打那个电话。仅仅因为所有新闻媒体都在谈论负面事件并不意味着这些事件有任何好处。此外,我不会仅仅依靠 StackOverflow 上的一个或几个人的响应。或任何其他网站。做你的研究,因为没有人比你更清楚你的项目需要什么。引用一位伟大的90s song

    小心你购买谁的建议,但对提供它的人要有耐心

    免责声明:我正在为 NServiceBus 代码做出贡献。

    【讨论】:

      【解决方案2】:

      您可以在其他问题中找到更多信息: What are advantages of using NServiceBus + RabbitMQ against pure RabbitMQ?

      作者在这篇博文中对此进行了扩展: https://www.davidboike.dev/2017/12/sure-you-can-just-use-rabbitmq/

      还有这个 YouTube 视频很好地涵盖了这个主题: https://www.youtube.com/watch?v=Zl4XrVBx16U

      【讨论】:

        猜你喜欢
        • 2015-02-27
        • 2018-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多