跨多台机器的分布式数据结构

时间:2010-12-14 14:20:13

标签: c# windows-services distributed multicast

我正在研究在多台机器上分发数据结构的可能性。我希望它在每台机器上运行,并使用(Multicast?)在所有机器上复制完整数据结构的副本。

有没有人有这方面的经验可以指出我正确的方向?

5 个答案:

答案 0 :(得分:0)

您可以将数据写入中央数据库。然后每个实例都可以访问它。如果要修改实例中的数据,则应实施锁定数据库中数据的机制。这有什么帮助吗?

答案 1 :(得分:0)

分布式锁定很难 - 你可能需要锁定,除非你只是阅读。我建议你看看像Microsoft's Velocity这样的分布式缓存框架(现在可以将其重命名为Azure的一部分),或者是免费的,开源的,非常好的memcached

还有其他付费选项 - 尤其是GemFireCoherence

我会给memcache一个去,它运作得很好。

答案 2 :(得分:0)

使用PUB / SUB套接字通过ØMQ发布结构,然后根据您的要求和网络质量在TCP或IP多播之间切换。

如果您的数据结构足够有条理,您还应该能够在没有太多问题的情况下向结构发送更新。

答案 3 :(得分:0)

您还可以查看Hazelcast,这是一种基于Java的解决方案。

这是一个直接链接(1),讨论了一些内部。

(1)http://www.hazelcast.com/documentation.jsp#Internals

并且已经有建议使用(repcached)memcached,这也应该很容易使用。

答案 4 :(得分:0)

要回答您的问题方向,您应该了解state machine replication,然后查找适用于您的平台的虚拟同步或Paxos的实现,以用作构建块。

实际上,我建议考虑使用ZooKeeper这样的协调服务,这样可以省去很多麻烦。