我应该使用什么技术来处理进程间事件/通知?

时间:2012-03-14 14:40:45

标签: c# .net msmq message-queue nservicebus

在我们的应用程序中,我们计划拥有一个中央数据存储,可以通过WCF服务由多个应用程序访问。但是,如果数据已更改并保存在一个应用程序中,则应通知所有其他应用程序此更改,否则应用程序将不同步。此通知仅包含已更改的数据类型及其唯一ID。之后,应用程序将向数据库询问更新的数据。所以,这似乎是一个非常简单的场景。

我的问题是:我们应该使用哪种技术来处理这些通知?

我找到了以下技术,但我不确定哪种技术最适合我们的场景:

  • Microsoft Message Queue(MSMQ)
  • NServiceBus
  • 回叫频道

2 个答案:

答案 0 :(得分:3)

我使用了2种实时消息产品/技术,并且发现它们非常有用:

  • SignalR

  • FrozenMountian' WebSync

    • 这有点贵 - 但免费版本最多允许10个连接。
    • 节省的时间值得每一分钱。

我想这可能被认为是你需要的东西 - 但它们是非常有用的工具。

答案 1 :(得分:2)

对于MS SQL Server,您可以查看SqlDependency。引用:

“SqlDependency非常适合缓存场景,其中ASP.NET应用程序或中间层服务需要将某些信息缓存在内存中.SqlDependency允许您在数据库中的原始数据发生更改时接收通知,以便缓存可以刷新。“

这将允许您直接在数据库级别侦听更改,而无需在应用程序实例之间进行任何特殊同步。作为一个额外的好处,即使数据库被您的应用程序之外的其他内容更改,这也会起作用。