我目前正在查看CouchDB,我明白我必须手动指定所有复制。如果我想在100个节点上使用它,我将如何进行复制?
难道没有办法说:“这里有3个IP在整个网络上。连接到它们并按照你认为合适的方式与每个人共享”?
感谢您的见解
答案 0 :(得分:1)
BigCouch不会提供开箱即用的交叉数据中心功能。 Cloudant DBaaS(基于BigCouch)确实已经跨多个数据中心进行了此设置。
BigCouch是Apache CouchDB的分片“Dynamo风格”分支 - 它将在未来合并到“主线”Apache CouchDB中,fwiw。分片位于同一数据中心的节点(服务器)之间。使用“经典”CouchDB样式复制(afaik)来保持各个数据中心的BigCouches不同步。
CouchDB风格的复制(n-master)是基于变更的,因此复制只包含最新的更改。
您需要为每个节点/数据库组合设置/从复制对设置。但是,如果您的所有服务器都是相同的,那么复制通常不会经常发生 - 只有在需要时才会发生。
如果A
发生了更改,则复制会将其发送到B
和C
(等)。但是,如果B
- 刚刚进行了更改 - 在C
获得机会之前将其复制到A
- 由于网络延迟等原因 - {{1}终于尝试了,它会意识到数据已经存在,并且不再费心再次发送更改。
如果这是您设置的标准部分(即,每次创建数据库时,您希望将其复制到其他地方),那么我强烈建议自动进行设置。
另外,检查_replicator数据库。管理正在发生的事情要容易得多: https://gist.github.com/fdmanana/832610
希望有些东西是有用的。 :)