【问题标题】:Connecting to Couchbase 2.0 cluster via libcouchbase fails, when a single node is down当单个节点关闭时,通过 libcouchbase 连接到 Couchbase 2.0 集群失败
【发布时间】:2025-12-11 14:00:02
【问题描述】:

在连接到由多个节点组成的沙发底座集群时,我遇到了一种奇怪的行为。由于冗余,我按照文档中的描述设置了与多个 IP 的连接。 为了追查问题,我尝试像这样连接到单个节点:

$cb = new Couchbase("<valid ip>", "<username>", "<password>", "<bucket>");

这完全没问题。但是当用一个ip数组替换单个ip时——为了实现冗余。我在错误日志中得到以下输出:

PHP 警告:无法建立与服务器的 libcouchbase 连接:连接失败... PHP 警告:...中没有与 couchbase 的活动连接

连接代码如下:

$hosts = array(<invalid ip>, <valid ip>);
$cb = new Couchbase($hosts, "<username>", "<password>", "<bucket>");

在这种情况下,我收到上述警告,并且 libcouchbase 根本没有连接。根据文档,couchbase 应该尝试所有提供的节点,并且不应该在第一个“死节点”上死掉。

我有什么问题吗?您对解决方法有什么想法吗?

非常感谢! 克里斯

【问题讨论】:

  • 你能指定php扩展和libcouchbase的版本吗?如果您安装了 libcouchbase2-bin 软件包(或从 tarball 安装),您应该可以使用“cbc”工具。这个命令输出什么 'cbc cp -h ";" -u -P -b /etc/passwd'
  • libcouchbase 版本为 2.0.7,php 扩展版本为 1.1.4dp1。执行上述命令时,我收到以下错误:错误:连接失败“无法在分配的时间内连接到服务器” 当连接到单个有效节点时,我得到 Stored “/etc/密码" CAS:746db695c40f0000

标签: couchbase


【解决方案1】:

也许这是特定于版本的,但是当我连接时,我不使用 IP 数组。我使用分号分隔的列表。例如

$cb = new Couchbase("192.168.2.1;192.168.2.2", $user, $password, $bucket);

【讨论】:

    最近更新 更多