.net 服务总线建议? [关闭]

Posted

技术标签:

【中文标题】.net 服务总线建议? [关闭]【英文标题】:.net service bus recommendations? [closed] 【发布时间】:2010-12-05 10:49:22 【问题描述】:

我们需要一个具有发布/订阅功能的分布式架构消息传递系统/服务总线。有没有人推荐我们可以用于 .net 应用程序的框架?

【问题讨论】:

这样的问题很有建设性。这个问题在谷歌搜索的顶部,非常有用。我对 UML 的问题也是如此***.com/q/6877121/377133 这不是建设性的吗?你一定是在开玩笑吧。我说这个问题非常有建设性。此类问题的最佳资源。 @kheya 这些类型的问题被认为没有建设性,原因有很多(垃圾邮件的可能性,以及这些工具过时的速度)。这是元解释的一个答案,我相信还有更多:meta.***.com/a/251135/1195056 最终,Software Recommendations 被派生来处理这些问题。 请重新打开问题。它在 Google 搜索中的排名很高,需要讨论。 【参考方案1】:

NServiceBus 越来越受欢迎。它也是开源的。这是Hanselminutes episode,Scott Hanselman 与 Udi Dahan 谈论 NServiceBus 以帮助了解它。您绝对应该使用它进行评估。

更新:还有一个 DNR 电视剧集,展示了从头开始构建 NServiceBus 解决方案的感受:http://www.dnrtv.com/default.aspx?showNum=199

【讨论】:

虽然它是开源的,但您可能想查看他们的许可。只有一些用例是免费的。在其他情况下,您可能需要付费的商业许可证。 您可能希望避免下载 nServiceBus 源代码,因为源代码(2.0 版之后)未授予开源许可证(至少,不是通用许可证)。因此,通过拥有源代码,您可能会发现自己处于模糊的法律领域。如果您是一家小型网店,则可能不是真正的问题。但是,如果您是一家财力雄厚的财富 500 强公司,那么... 只是为了澄清一些 cmets,NServiceBus 使用互惠许可证。这基本上意味着你必须开源任何你使用 NServiceBus 的东西。如果这对您不起作用,那么您必须购买它。【参考方案2】:

也请查看masstransit 和rhino service bus。既开源又由非常聪明的人编写。

【讨论】:

【参考方案3】:

查看RabbitMQ。 .NET 客户端功能齐全,而且非常易于使用。有一本书叫RabbitMQ in Action,还有RabbitMQ in Depth 提供抢先体验版。

【讨论】:

RabbitMQ 不就是一个开源的消息队列吗?我不相信它本身实际上是一个服务总线框架。 从技术上讲,它是一个消息代理。如果它满足一个项目的要求,你关心人们如何分类它吗? 知道它更像是一个经纪人是有帮助的,谢谢!我不关心这些术语,而是试图让我的大脑围绕这些技术之间的差异(因为这在某种程度上是这个 q/a 的性质)。我记得这篇关于经纪人和巴士之间一些差异的有趣帖子:udidahan.com/2011/03/24/bus-and-broker-pubsub-differences。【参考方案4】:

我目前正在开发基于开源 WCF 的服务总线。你可以在这里找到它:http://rockbus.codeplex.com/。它支持动态(@run-time)订阅、订阅存储库(数据库)、可插入传输、基于 XPath 的基于内容的路由、基于 wcf 协议的事务交付、循环交付、可插入订阅评估等。看看吧!

【讨论】:

【参考方案5】:

我发现 ActiveMQ 集成到 Apache NMS 中非常容易理解、设置和透明。

例如,ActiveMQ 带有一个 Web 前端,允许您使用 Web 浏览器查看消息队列,并读取、删除甚至创建消息。因此,您可以非常轻松地开始开发和测试分布式应用程序的一侧,并且调试和监控非常简单。

【讨论】:

NServiceBus 从 4.0 版开始可以在 ActiveMQ(以及其他队列)上运行,为您提供两全其美的体验。【参考方案6】:

我发现Neuron ESB 是一个可靠的实现,虽然我还没有在愤怒中使用它。

【讨论】:

【参考方案7】:

到目前为止,.NET 堆栈中还没有成熟的服务总线实现。微软目前正在开发一种。

http://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10).aspx

作为一种选择,您可以使用 Java 世界中的一种。例如,TIBCO - 他们有相当强大的 .NET 客户端可用,或 OpenMQ。

如果您不需要广泛的功能并准备好开发自己的系统,请使用 WCF。 WCF 回调非常适合这种情况。

【讨论】:

我认为您将 ESB 误认为是消息传递。 Tibco 和 OpenMQ 是消息队列。它们只是提供传输机制。而已。关于 .NET 服务总线实现:您或多或少是对的,尽管 NServicebus 已经非常接近成熟的产品,而且似乎正在为此付出努力。作为使用 WCF 作为服务总线部分构建多个解决方案的人:不。WCF 不适合这个。 WCF 中的 Pub/sub 至少可以说是一个皮塔饼,需要认真深入研究 WCF 及其架构,才能发现它并不适合它。 恕我直言,不正确。 Neuron ESB 稳定且成熟 - 并且基于 Microsoft 技术(.NET,包括 WCF/MSMQ 等)

以上是关于.net 服务总线建议? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Azure 服务总线:使用函数、服务结构和 Web 作业? [关闭]

如何从.net核心应用程序向服务总线主题发送消息

.NET 的简单事件总线 [关闭]

服务总线如何工作?

ASP.NET Core Web 应用程序作为 Azure 服务总线使用者/接收器

MassTransit一个优秀的.NET消息(事件)总线框架