我们真正需要的是哪种mvc / c#技术/架构——nservicebus、WCF还是别的什么?

本文关键字:nservicebus WCF 什么 架构 技术 mvc 我们 | 更新日期: 2023-09-27 18:12:06

我们需要这样做。

我们有一个web应用程序(MVC3),它允许管理各种实体。我们说"schools","students"answers"teachers"。

当这些实体中的任何一个发生变化(创建、更新或删除)时,我们需要将变化告知另一个系统。我们无法控制另一个系统,但我们可以访问一个网络服务,让我们实时更新它。

我知道我不希望我们的用户在我们连接到这个web服务并进行更新时等待,所以我们必须需要一种方法来排队更新并将更改作为一个完全独立的过程的一部分。

我非常感谢任何解决这个问题的架构指导。我确信有现有的框架可以管理这个队列,并允许我们,例如,在通信中断时重新发送数据-但我不知道该看哪个框架。

干杯!

我们真正需要的是哪种mvc / c#技术/架构——nservicebus、WCF还是别的什么?

NServicebus将提供您所需的队列。它提供事务性支持,并在需要重新处理失败消息时提供返回源队列实用程序。我建议使用第三个系统来处理调用web服务的问题。此消息处理程序将从队列中读取并调用web服务。

Client -> Publish NServiceBus Msg -> MessageHandler -> Web Service

此消息处理程序将为您提供所需的关注点分离。

需要数据更新的其他供应商/客户端并不依赖于您的应用程序。至少从你的解释中看不出来。他们依赖于准确的数据。这意味着您的问题是数据问题,而不是应用程序问题。从这个角度来看,数据解决方案看起来很诱人。

如果你使用SQL Server,我会考虑在数据库上使用触发器并在那里启动。如果您希望完全卸载数据库操作和应用程序的工作,那么SQL Server Service Broker可以很好地工作。

如果您在另一个数据库平台上,您可能或可能没有队列服务。在这些情况下,您可能需要一个服务总线,但我想看看是否有一个更简单的可靠的异步方法,您可以先使用。