Nservicebus *nix生态系统中存在哪些消息总线技术?

Nservicebus *nix生态系统中存在哪些消息总线技术?,nservicebus,soa,akka,zeromq,amqp,Nservicebus,Soa,Akka,Zeromq,Amqp,我唯一的SOA经验来自于使用NServiceBus。它设计得非常好,有一些我非常喜欢的漂亮功能: 消息的处理是事务性的(并由您负责),因此它是“一次且仅一次”(而不是“至少一次”) 内置传奇支撑 自动重试支持 发布/订阅支持(但我假设所有服务/消息总线都支持此功能) 所有这些让我只能专注于应用程序的逻辑,但我只在.NET中使用过它,而Windows几乎肯定不是我正在进行的项目的新手。所以我的问题是 *nix生态系统中存在哪些服务总线技术(包括在Mono上运行NSB的经验),以及它们如何衡量W

我唯一的SOA经验来自于使用NServiceBus。它设计得非常好,有一些我非常喜欢的漂亮功能:

  • 消息的处理是事务性的(并由您负责),因此它是“一次且仅一次”(而不是“至少一次”)
  • 内置传奇支撑
  • 自动重试支持
  • 发布/订阅支持(但我假设所有服务/消息总线都支持此功能)
所有这些让我只能专注于应用程序的逻辑,但我只在.NET中使用过它,而Windows几乎肯定不是我正在进行的项目的新手。所以我的问题是

*nix生态系统中存在哪些服务总线技术(包括在Mono上运行NSB的经验),以及它们如何衡量Windows上运行的NServiceBus

奖励:除了上述功能外,还有哪些语言可以发送/接收/处理总线上的消息?灵活地用语言A编写一个服务,用语言B编写另一个服务,这对本项目非常有利。

SonicESB/MQ 我可以根据在Linux上使用SonicESB的经验发言。它基本上是SonicMQ——一种兼容JMS的MOM——上面有一个流程中介层;那是服务车

赞成的意见
  • 基于行程的路由;消息包含访问哪些服务的工作流
  • 容器内消息传递;通过在ESB容器中路由消息提高性能,完全避免代理
  • Web服务端点;可以通过HTTP端点调用ESB服务,从而弥合非Java/JMS客户端和总线之间的差距
  • eclipse中的良好开发工具,用于在Java中开发和调试esb服务和流程
  • 管理工具也不错
欺骗
  • 事务不跨越服务边界(自7.5版以来可能已更改)
  • 没有消息重试机制;我们使用实用程序服务和消息参数操作(可能在7.5中有所更改)推出了自己的应用程序
  • 昂贵的;由core授权,因此希望为此付费
客户支持 关于什么技术可以发送和接收到SonicESB,任何Java JMS,这是肯定的。Sonic还为Windows技术在.net/C#/VB中提供了一个库,因此您可以从总线发送和接收消息。这对我们来说是一个巨大的优势,因为我们的开发团队使用RIA内置的C#

您可能想要签出,一个开源服务总线


希望它能有所帮助,

我已经很久没有认真使用过NServiceBus了(事实上,在那个时候,它甚至没有被称为NServiceBus——它只是Udi编写的替换库,我们不得不在一个联合项目中使用的一个糟糕的comm库:),所以我不知道NServiceBus的所有功能

根据我所知道的,我会说(最初由LinkedIn开发)将是一个很好的起点。它具有相对强大的订购保证,支持发布/订阅消费者池,并支持工作流行为,例如,在其上提供流式处理框架


同样关于客户端接口。你可以找到当前的列表

请原谅我不加区分的标记-我想标记尽可能多的选项。Mono上的.NET对你的项目来说是可行的选项吗?@UdiDahan它可能会面临巨大的反对。与VS相比,开发工具较差,而且它们通常不喜欢强类型的编译语言(即C#)。然而,我仍然有兴趣知道Mono上的NSB与其他选项相比如何。这就是我的想法。我认为,最佳情况是使用NSB作为基础设施,但不使用C#编写处理程序(我的同事更喜欢Ruby,目前我更喜欢Node)。这是否可行?有没有具体的计划使之成为可能?这将为NSB打开许多市场。。。