只是想知道人们使用什么策略的信息?
在示例中,我看到建立远程数据库连接非常容易,我将调用get()
。
var remoteDb = new PouchDB('https://myhost.com/db');
var data = remoteDb.get("myId");
但是,如果我设置了几个相互同步的远程数据库,该怎么办?我希望客户能够在不更改代码的情况下使用它们。
我正在考虑通过dns这样做。例如,db.myhost.com具有指向其他服务器的多个记录。如果我这样做并且一台服务器出现故障,那么pouchDB会实现并重新连接到另一台服务器吗?
我可能会编写一些javascript来为用户提供随机服务器或根据区域等分配服务器。然后我可以设置错误处理程序来切换服务器上的任何错误。这有必要还是已经在我可以使用的某个库中实现了?
答案 0 :(得分:1)
您可以使用nginx作为反向代理,如下所述:http://karmi.tumblr.com/post/247255194/simple-couchdb-multi-master-clustering-via-nginx
基本上你配置nginx来监听一个地址,然后将流量传递给你的CouchDB实例(改编自原始帖子):
http {
# ...
upstream couchdb_cluster {
server couchdb1.example.com:5984;
server couchdb2.example.com:5984;
}
server {
listen 80;
server_name db.example.com;
location / {
proxy_pass http://couchdb_cluster;
break;
}
}
# ...
}