gpt4 book ai didi

rabbitmq - 为什么我们需要在 MSMQ/RabbitMQ 等消息队列系统之上使用 NService Bus/MassTransit 等服务总线框架?

转载 作者:行者123 更新时间:2023-12-04 09:24:15 25 4
gpt4 key购买 nike

在分布式消息事务世界中,我试图了解开发分布式系统所涉及的不同部分。据我了解,您可以使用支持消息队列系统的企业总线来设计消息系统。为什么同时使用两者是个好主意?通过仅针对消息队列系统进行编程可以实现同样的目的吗?两者一起使用有什么好处?

最佳答案

您当然可以直接针对消息传递基础架构进行编码,您会发现各有利弊。每次运输。但是,您需要在此过程中做出许多决定,而这正是服务总线可以提供帮助的地方。

直接针对排队系统进行开发将不可避免地导致您需要防止重复的各种抽象。

服务总线将为以下方面提供意见/实现:

  • 消息传递
  • 精确一次(分布式事务 - 并非所有排队系统都支持分布式事务)
  • 至少一次(非事务性)
  • 最多一次(可能需要一些事务处理,但您可以使用 没有分布式事务 )
  • 重试失败的消息
  • 请求/响应
  • 留言分发
  • 发布/订阅(直接使用 RabbitMQ 可能很容易,直接使用 MSMQ 就不太容易了)
  • 消息幂等
  • 依赖注入(inject)

  • 一些服务总线实现为实现流程管理器(大多数称为 sagas)提供了一个框架。我目前的观点是,流程经理需要像任何其他实体一样成为一等公民,但这可能会改变:)

    无论如何,如果您仍在评估选项,您还可以查看我的 FOSS 项目: http://shuttle.github.io/shuttle-esb/

    因此,服务总线可能会给您带来很多开箱即用的东西,而直接针对队列进行编码可能需要一些工作才能开始。

    关于rabbitmq - 为什么我们需要在 MSMQ/RabbitMQ 等消息队列系统之上使用 NService Bus/MassTransit 等服务总线框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25953891/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com