【问题标题】:Enterprise messaging and realiablitity [closed]企业消息传递和真实性[关闭]
【发布时间】:2014-10-18 14:38:56
【问题描述】:

全部!我在这里需要专家的建议。我有一个场景,由于触发了某些业务流程(取决于某些用户输入),我的 .NET WebForms UI 应用程序性能不佳。当前的解决方案是基于 MS SQL 服务器的。我认为其中一些业务流程可以卸载和异步处理,因此用户不必等待它们并获得更好的 UI 体验。虽然,我需要确定这些业务流程确实得到了处理。作为一种解决方案,我正在考虑在应用程序中引入某种消息传递系统,这将触发这些进程异步。经过与业务人员的多次辩论,消息系统的标准之一是可靠性——消息永远不会丢失。 (基础设施和可维护性是第二个。)所以这是我的问题:

对于应用程序内部消息传递,您会推荐哪种消息传递系统/平台,哪个便宜、可靠且不涉及分布式事务?

现在我正在考虑使用 SQL Service Broker - 是否有更好的选择?是否足够可靠而不会丢失消息?

我应该建立自己的基于 SQL Server 的消息传递系统吗?

非常感谢任何建议。 谢谢!

【问题讨论】:

  • 不幸的是,没有明确的答案,因此您的问题可能会被关闭。但是,您可能需要考虑使用服务总线。在这里查看我的答案:stackoverflow.com/questions/25953891/… --- 你需要评估一对夫妇,看看什么对你有用。

标签: sql rabbitmq msmq messaging masstransit


【解决方案1】:

RabbitMQ 是一个非常流行的开源消息传递框架,它可以完全满足您的需求。我的团队对您的同一主题进行了大量研究,并选择了 rabbitmq 而不是 msmq 和/或 zeroMQ 等其他消息传递框架。

在“异步消息传递”世界中,您正在寻找的消息传递类型术语是“持久消息传递”,rabbitmq 可以很好地处理这个问题。

持久消息传递意味着消息在发送到队列时也会持久保存到磁盘。除了持久性之外,在消息的使用者确认处理已成功完成之前,不会从队列中删除消息。这保证您永远不会丢失消息!

持久的消息传递正是您所需要的,您希望的一切都可以通过 RabbitMQ 处理。

有些人可能会提到使用“服务总线”。当心那个词。大多数人对这个术语的含义有不同的看法,甚至“服务巴士”的供应商也对这个概念做出了不同的定义。但是,对于您的情况,您需要了解两种服务总线产品。它们是 MassTransit 和 NServiceBus。这两个是构建在 RabbitMQ 和/或 msmq 之上的代码抽象。简而言之,它们用于促进rabbitmq的编码,并且不能替代rabbitMQ或其他队列传输,因为其他人可能会说它听起来(把它们想象成rabbitmq或msmq上的shell)。我建议仅当您要在应用程序中大量使用异步消息传递时才使用其中一种产品,否则,您可以使用准系统 RabbitMQ,一切都会好起来的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-29
    • 2015-03-22
    • 2012-12-18
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多