我正在开发一个需要跨国家/地区分发数据的应用程序。内容将“按地区”提供,但需要能够轻松复制到其他地区。除此之外,我还有一些需要在数据库之间共享和同步的一般信息。
我所工作的组织正在考虑自己实施这个系统,但感觉应该有一些好的解决方案(我对云解决方案持开放态度 - 我的公司需要管理的越少越好)?
这可能是一个模糊的问题,但我认为可以很好地回答这个问题。
在开发这种分布式数据系统时,我有哪些选择?
更新
应该详细说明(但我不确定在NDA的情况下我能说多少)。可以说,我有“内容”,我需要存储在一些空间(文件)。我需要存储关于分布在多个节点上的内容的元数据(可能由我们或其他人托管),以允许快节奏的通信和区域化的数据差异。我需要控制如何在节点之间复制数据,但最好是以符合标准的方式。 (最好不是我们写的)
答案 0 :(得分:1)
您可以尝试使用CouchDB。它的离线复制模型听起来非常适合地理分布式系统。
答案 1 :(得分:0)
有趣的问题 - 但它确实有助于获得更多背景。
您谈论的是“数据”,这通常意味着具有相当明确定义的结构,通常在关系数据库中实现。
您还谈到“内容”,这通常意味着具有(很多)定义不太明确的结构,通常作为某种类型的文档实现。存在许多用于构造“文档”的解决方案,例如,文件系统或网站。
假设我们正在谈论结构化数据,最简单的事情就是拥有单一的存储库,可以在任何地方访问。看看“云”产品 - 亚马逊是一个不错的选择。创建自己的全局数据存储库是一项重大任务 - 但如果您正在处理高度机密的数据,或者具有特定的性能要求,那么可能还有很长的路要走。
如果这些选项都不起作用,那么您就处于“企业服务总线”的世界。谷歌,但要小心 - 这是一个复杂的领域,你真的想找到一个知道他们正在做什么的人。
话虽如此,使用现成的ESB比构建自己的分布式数据结构要痛苦多了几倍。
答案 2 :(得分:0)
我知道这是问了几年后,但是我正在查找同一个问题的答案,看起来 Cassandra 可能符合要求。一旦设置,它的外观和行为就像其他数据库解决方案(表,视图,SQL,事务等),但它也可以完全分散。每个实例都充当其他Cassandra节点集群中的节点。他们在幕后同步,如果一个人倒下,其他人就会懈怠。这使得Cassandra具有高度可扩展性和高度容错性。