我正处于 .NET 服务的规划阶段,该服务不断处理传入消息,其中涉及各种转换、数据库插入和更新等。作为一个整体,该服务庞大而复杂,但它执行的各个任务它们小、简单且定义明确。
出于这个原因,并且为了将来能够轻松扩展,我想将服务拆分为几个较小的服务,这些服务基本上执行部分处理,然后再将其传递到链中的下一个服务。
为了实现这一目标,我需要某种中间消息传递系统,将消息从一个服务传递到另一个服务。我希望这种情况以这样的方式发生:如果链中的链接崩溃或短暂离线,消息将开始排队并在目的地重新上线后得到处理。
我一直使用消息队列来处理此类事情,但最近发现 SQL Service Broker 似乎可以做类似的事情。 SQLSB 是否是此场景的可行替代方案?如果是,我会通过使用它而不是标准消息队列看到任何性能优势吗?
谢谢
最佳答案
在我看来,您可能正在追求服务总线架构。这将为您提供所需的协调性和容错能力。我最熟悉也最偏爱 NServiceBus,但还有其他一些,包括 Mass Transit 和 Rhino Service Bus。
关于msmq - 进程间消息传递 - MSMQ、Service Broker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4682468/