我的问题非常简单:

在那时,我有一些共享数据的建立。我需要一种支持该数据共享(跨多台计算机)的方法,当一个Aplication更改数据时,应将其通知其他数据。

我的问题是关于哪些技术对我有用。我目前意识到的解决方案是拥有一个数据库来共享数据和外部发布订阅系统(例如 http://pubsub.codeplex.com/)在更改数据时通知所有应用程序。但是我相信这可能存在一些有用的解决方案。

你知道吗?谢谢。

有帮助吗?

解决方案 4

我可以使用SQL Server存储我的数据和SQL Server通知服务( http://msdn.microsoft.com/en-gb/library/ms172483(SQL.90).aspx )在更改数据时获取通知。

其他提示

嗯,当您承诺这样的建筑时,他们在实践中永远不会很好地工作。第一个问题是您将创建的大量网络流量,这永远无法很好地扩展。更严重的是,您会遇到巨大的并发问题。根据定义,“数据更改”通知将迟到,并且不能保证它们会被订购。只要通知之间有足够长的时间延迟,一切都可以正常工作,这使子系统有机会对数据进行同步视图。

但是,当负载增加并开始缓冲通知时,该纸牌屋崩溃了。子系统将开始对数据的旧视图做出决策,并与其他子系统持有的观点同步。您也无能为力,您不能在网络上“锁定”。而且非常难以调试,同步不匹配是完全随机和虚假的。

采用集中式服务器方法,并发更容易处理。

如果您使用的是Java,JMX就会想到 太阳的JMX教程. 。有很多支持,易于使用。

您可以使用 Windows Communication Foundation (WCF)在客户和服务器之间进行通信。通信可以是两种方式,因此客户端可以通知服务器有关更改的通知,并且服务器将向所有需要通知的相关客户端推出消息。两种交流称为 双工合同 在WCF中。这样,如果您真的不需要数据库,则不必使用数据库。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top