如何使用pouchdb / couchdb加载平衡/故障转移?

时间:2015-11-19 00:35:34

标签: javascript couchdb load-balancing failover pouchdb

只是想知道人们使用什么策略的信息?

在示例中,我看到建立远程数据库连接非常容易,我将调用get()

var remoteDb = new PouchDB('https://myhost.com/db');
var data = remoteDb.get("myId");

但是,如果我设置了几个相互同步的远程数据库,该怎么办?我希望客户能够在不更改代码的情况下使用它们。

我正在考虑通过dns这样做。例如,db.myhost.com具有指向其他服务器的多个记录。如果我这样做并且一台服务器出现故障,那么pouchDB会实现并重新连接到另一台服务器吗?

我可能会编写一些javascript来为用户提供随机服务器或根据区域等分配服务器。然后我可以设置错误处理程序来切换服务器上的任何错误。这有必要还是已经在我可以使用的某个库中实现了?

1 个答案:

答案 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;
    }

  }
  # ...
}