0

我是 NServiceBus 的新手,试图将消息传递引入 WCF/RPC 解决方案。

由于架构限制和开销(内存和 CPU 使用率已经很高),IT 运营将不允许 MSDTC。(我也很想避免 2PC fwiw)。我还需要通过 http 发送消息,因此 NSB 桥看起来是一个很好的解决方案。

根据这些帖子(how-i-avoid-two-phase-commitextended-nservicebus-avoiding-two-phase-commits),在我看来好像可以在禁用 DTC 的情况下使用 NSB。听起来EventStore确实设法避免了 2PC,就像我想设置 NSB 一样,但目前我只想让 NSB 工作,而不是在混合中添加事件源。

问题:

  1. 有没有配置 NSB 以这种方式工作的示例?我很高兴添加额外的复杂性(具有本地消息状态存储的自定义消息处理程序) - 如果没有 2PC,就没有其他选择。我已经知道这个例子(IdempotentConsumer),但是这个 repo 的测试项目不包含任何代码。如果有一个使用 nosql 存储的例子会更有帮助。
  2. 我需要改变 NSB 桥接器来处理没有 DTC 吗?我猜没有 - 桥接事务仅针对本地队列,但消耗本地队列的进程显然需要编码以避免 2PC。正确的?
  3. 在没有 MSDTC 的情况下使用 NSB 是否还有其他有用的资源/帖子?解决方案(how-i-avoid-two-phase-commit)似乎并不太复杂,但考虑到我刚刚开始使用 NSB,找到一个快速入门会很棒......
  4. 我原以为这将是一种常见的情况 - 但似乎没有太多关于在仍然使用 NSB 的同时避免 MSDTC 的文章。当然还有其他人正在使用消息总线,但不允许使用 MSDTC ......还有另一种我错过的明显方式吗?

谢谢

4

1 回答 1

1

2)是的,你应该没问题。由于您自己进行重复数据删除,因此您不需要网关为您执行此操作。只需将其配置为使用 InMemory 持久性,就可以了。

于 2012-01-26T07:53:54.763 回答