msmq - 进程间消息传递 - MSMQ、Service Broker?

标签 msmq message-queue messaging service-broker broker

我正处于 .NET 服务的规划阶段,该服务不断处理传入消息,其中涉及各种转换、数据库插入和更新等。作为一个整体,该服务庞大而复杂,但它执行的各个任务它们小、简单且定义明确。

出于这个原因,并且为了将来能够轻松扩展,我想将服务拆分为几个较小的服务,这些服务基本上执行部分处理,然后再将其传递到链中的下一个服务。

为了实现这一目标,我需要某种中间消息传递系统,将消息从一个服务传递到另一个服务。我希望这种情况以这样的方式发生:如果链中的链接崩溃或短暂离线,消息将开始排队并在目的地重新上线后得到处理。

我一直使用消息队列来处理此类事情,但最近发现 SQL Service Broker 似乎可以做类似的事情。 SQLSB 是否是此场景的可行替代方案?如果是,我会通过使用它而不是标准消息队列看到任何性能优势吗?

谢谢

最佳答案

在我看来,您可能正在追求服务总线架构。这将为您提供所需的协调性和容错能力。我最熟悉也最偏爱 NServiceBus,但还有其他一些,包括 Mass Transit 和 Rhino Service Bus。

关于msmq - 进程间消息传递 - MSMQ、Service Broker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4682468/

相关文章:

c# - 如何关闭(而不是杀死)另一个没有可见窗口的应用程序? (C#)

msmq - MassTransit 或 nServiceBus 是否支持基于 HTTP 传输的 MSMQ?

c - 为什么在 POSIX 中创建消息队列时出现错误 "Cannot Allocate Memory"?

apache-kafka - 如何从事件启动微服务

c# - MSMQ:MessageQueue.Close() 在 .EndReceive() 处抛出异常 -1073741536

java - ActiveMQ:在没有代理的情况下启动消费者

c# - WCF 服务实时报告长时间运行的作业进度

php - 在 PHP 中为 MSMQ 消息设置可恢复属性

windows - 当队列本身为空时,为什么 MSMQ 的存储已满?

ruby-on-rails - 如何计算 Ruby on Rails 3 中的未读消息