javascript - 当新的 couchbase Node 添加到集群时,是否需要更改应用程序?

标签 javascript node.js sdk couchbase

我正在使用 Node.js SDK 连接到 couchbase 集群。在 Node.js 文档中,他们没有指定如何在创建集群对象时传递(集群 Node 的)多个 ip,但 java 文档显示它可以接受 IP 数组,Node.js SDK 中也提供此功能吗?

此外,如果这是连接到具有许多 Node 的集群的方式,那么每当我们向集群添加新 Node 时,是否需要将其 IP 添加到连接字符串并重新启动应用程序?

PS 我是 Couchbase 和 Node.js 的新手,所以请耐心等待

最佳答案

最佳实践是在连接字符串中放置尽可能多的 Node ,以便在其中一个 Node 不可用的情况下,客户端仍然能够最初进行连接。

但是要回答您原来的问题,,不需要更改/重新启动应用程序。。客户端只需要知道集群中的一个单个 Node ,然后连接到该 Node 并发现所有其他 Node 。

当您考虑客户端如何实际连接到集群时,这两个概念都有意义。

使用单个 Node

  1. 客户端连接到 10.4.4.1
  2. 客户端从10.4.4.1请求“Cluster Map”。集群映射包含有关集群本身的信息,包括属于集群的所有 Node 列表
  3. 客户端连接到集群映射中的所有其他 Node (这意味着 10.4.4.2、10.4.4.3 等)

由于 Couchbase 是一个分布式系统,其中所有 Node 都了解所有其他 Node (因此,您可以登录到任何 Node 的管理控制台来管理集群),应用程序只需要了解一个初始 Node ,连接到该 Node 将通知它们有关所有其他 Node 的信息。

传递多个 Node

假设您从集群中删除了一个 Node 10.4.4.1,因此您的集群只有 10.4.4.210.4.4.3。由于您的应用程序配置为仅连接到 10.4.4.1,因此您需要立即重新配置代码以连接到另一个 Node ,因为到 10.4.4.1 的连接将会失败。由于 10.4.4.1 不再是集群的一部分,因此它将无法提供有关其他 Node 的信息。

如果您已将所有 Node 传递给集群,客户端确实会尝试仍然连接到10.4.4.1,但是一旦客户端连接失败,它将继续尝试下一个 Node (10.4.4.2) 并成功获取新配置。

如果您添加了另一个 Node ,那么什么都不会失败 - 当然,建议您最终更新应用程序上的 Node 列表,但这不是严格要求。

关于javascript - 当新的 couchbase Node 添加到集群时,是否需要更改应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30137816/

相关文章:

javascript - window.open 无效参数错误

javascript - 如何设置 webpack 以支持 Node 中的 ES6 模块

node.js - 在nodejs中的if语句中读取txt文件

android - 尝试在低于最低 sdk 的设备上安装 apk 时出现“解析错误”

iphone - 从 iPhone SDK 中的数组访问随机项

javascript - 获取 jquery slider 内容以保持可见,直到鼠标移出(新内容)

javascript - 检索 firebase 数据库的内容

javascript - 如何在Jquery中后台运行一段代码

mysql - NODEJS - 执行 INNER JOIN Sequelize

iPhone SDK 和 MySQL 远程数据库