我对SOA的唯一体验来自于使用NServiceBus。它设计得非常好,并且有一些我非常喜欢的漂亮功能:
所有这些让我专注于应用程序的逻辑,但我只在.NET中使用它,而Windows几乎肯定不是我正在开发的项目的首发。所以我的问题是......
* nix生态系统中存在哪些服务总线技术(包括在Mono上运行NSB的经验)以及它们如何衡量在Windows上运行的NServiceBus?
加分:除了上述功能外,哪些语言可以从总线发送/接收/处理消息?能够灵活地用语言A编写一个服务而用语言B编写另一个服务对于这个项目非常有利。
答案 0 :(得分:1)
我可以在Linux上体验SonicESB的经验。它基本上是SonicMQ - 一个符合JMS的MOM - 顶部有一个进程中介层;这是服务总线。
关于哪些技术可以向/从SonicESB发送和接收,任何Java JMS,这是肯定的。 Sonic还提供.net / C#/ VB for Windows技术的库,因此您可以从总线发送和接收消息。这对我们来说是一个巨大的优势,因为我们的开发团队使用RIA内置的C#。
您可能需要查看MuleESB,这是一种开源服务总线。
希望它有所帮助,
答案 1 :(得分:1)
自从我认真使用NServiceBus以来已经有一段时间了(事实上,那时候,它甚至没有被称为 - 它只是替换库Udi写的,我们不得不在一个糟糕的通讯库中使用联合项目:))所以我不知道所有NServiceBus功能。
我会说,根据我所知,Apache Kafka(最初由LinkedIn开发)将是一个很好的起点。它具有相对强大的排序保证,支持发布/订阅消费者池并支持工作流行为,例如Samza,它提供了一个流媒体框架
还有关于客户端界面。您可以找到当前列表here