Java中的点对点存储库

6
我正在开发一个Java应用程序,它将以点对点的方式工作。在任何时候,全球将有超过5000个客户端在线。这些客户端中的每一个都会随着时间的推移创建小文件。我希望这些文件分布在所有客户端之间,并被存储,以便任何人都可以连接并下载文件。

是否有任何库可以帮助实现这一功能?


你需要节点之间进行冲突解决吗?节点是否应该自动发现彼此,或者你是否可以接受每个节点需要手动连接对等节点? - halfer
你可以查看Pastry库 http://www.freepastry.org/ 但我会和下面的Bill K一样,考虑使用客户端/服务器系统。任何服务器解决方案都可以轻松扩展到5K个客户端。 - selbie
我需要支持2亿客户端。 - Anon21
我也有同样的问题。我想为一个拥有数百万用户(约1000万)的游戏制作一个粉丝自制工具。寻找一种免费的方式将每个用户的数据广播给其他用户。 - thirdy
1个回答

4

我重新表述一下,让它显得更加严肃,因为这是唯一的答案。

尝试找一个Java比特流库,我刚才谷歌了一下,有很多--我不想在这里列出它们,因为我没有任何个人经验。

我可以告诉你,按照通常的方式,比特流仍然需要一些集中协调(跟踪器)。 我非常确定Vues在“无跟踪”纯P2P模式下运行,因此在评估库时请特别注意这一点。

如果您创建的不是一个巨大的广泛分布和资金充足的应用程序,我强烈建议您考虑其他共享文件系统,如dropbox甚至svn,它们不是P2P,但已知可靠,并且至少Dropbox可以在任何平台上完全在后台工作,长时间忽略而不会出问题。


我喜欢这个答案。它可以扩展为“任何客户端/服务器解决方案”。与使可扩展的P2P系统稳健工作所需的调试量相比,仅使客户端-服务器系统可靠所需的努力将微不足道。 - selbie
经过思考,我认为一个比特流种库确实可以胜任这项工作,但我认为实现一个比特流种库并处理所有连接问题(包括使其纯P2P,而BT通常不是)将比大多数小项目想承担的工作更多。 - Bill K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接