当MSDTC两端都不可用时,如何使用网关配置nservicebus

当MSDTC两端都不可用时,如何使用网关配置nservicebus,nservicebus,cqrs,event-sourcing,Nservicebus,Cqrs,Event Sourcing,我不熟悉NServiceBus,试图将消息传递引入WCF/RPC解决方案 由于架构限制和开销(内存和cpu使用率已经很高),IT操作将不允许MSDTC。(我也希望避免2件装fwiw)。我还需要http上的消息,因此NSB网桥看起来是一个很好的解决方案 基于这些帖子(和),在我看来,似乎可以在禁用DTC的情况下使用NSB。 这听起来像是以我想设置NSB的方式避免了2PC,但目前我只想让NSB工作,而不是将事件源添加到组合中 问题: 是否有将NSB配置为这种方式的示例?我很高兴添加额外的复杂性(带有

我不熟悉NServiceBus,试图将消息传递引入WCF/RPC解决方案

由于架构限制和开销(内存和cpu使用率已经很高),IT操作将不允许MSDTC。(我也希望避免2件装fwiw)。我还需要http上的消息,因此NSB网桥看起来是一个很好的解决方案

基于这些帖子(和),在我看来,似乎可以在禁用DTC的情况下使用NSB。 这听起来像是以我想设置NSB的方式避免了2PC,但目前我只想让NSB工作,而不是将事件源添加到组合中

问题:

  • 是否有将NSB配置为这种方式的示例?我很高兴添加额外的复杂性(带有本地消息状态存储的自定义消息处理程序)——没有2PC,实际上没有其他选择。我已经知道这个示例(),但是这个repo的测试项目不包含任何代码。如果有一个使用nosql存储的例子,那将更有帮助
  • 我是否需要更改NSB桥接器以处理无DTC?我猜无桥事务只针对本地队列,但显然需要对使用本地队列的进程进行编码以避免2PC。对吗
  • 在没有MSDTC的情况下使用NSB是否还有其他有用的资源/帖子?解决方案()似乎不太复杂,但考虑到我刚开始使用NSB,找到一个快速入门的解决方案将是非常棒的
  • 我本以为这是一种常见的情况——但似乎没有多少关于在仍然使用NSB的情况下避免MSDTC的文章。当然还有其他人正在使用消息总线,但不允许使用MSDTC。。。有没有其他明显的方式让我错过了

  • 谢谢你是的,你应该很好。由于您是自己进行重复数据消除的,因此不需要网关来为您进行重复数据消除。只需将其配置为使用InMemory持久性,就可以了。

    Rant ahead:“内存和cpu使用率已经很高,it操作将不允许MSDTC”。IT运营部和DBA如何做出对软件构建方式和最终成本具有根本性影响的决策总是很有趣的。不是说ES和所有这些都不好,恰恰相反,但应该使用它,因为业务需要它,而不是因为it运营部的某些人认为内存很昂贵。相信我,开发时间比内存和cpu要贵得多是的,我很清楚开发时间比硬件更昂贵。我不认为离开MSDTC是一件坏事——对于我们可以使用哪些持久性存储有点限制。这就是为什么我感到惊讶的是,在NSB(论坛等)周围似乎没有更多关于删除MSDTC硬要求的讨论(我想这只能通过在NSB中包含jonathan oliver描述的解决方案来实现)。无论如何,没有MSDTC是我遇到的限制——所以我真的很想看看如何解决它的例子。我不会把它称为nsb的“硬”要求。您可以通过调用configure.isTransaction(false)将其关闭。我们无法提供更多帮助,因为您基本上需要代码,而您正处于困境之中。但是ES当然让这更容易。太好了,谢谢。我的主要问题仍然是1)-希望看到一个围绕2阶段提交工作的示例。一定有一个在外面的什么地方。暗示乔纳森·奥利弗。。。?提示;)你只是个脾气暴躁的老家伙乔纳森:)