You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Couchbase Java SDK:已成功打开Bucket但查询时连接超时

Couchbase客户端已打开Bucket但查询超时问题排查

问题场景

Java初始化Couchbase客户端时,日志显示客户端已成功创建并打开Bucket:

2023-04-22T15:44:28.624000+0200 [INFO] com.couchbase.client.core.node.Node [cb-io-1-3] Connected to Node foo
2023-04-22T15:44:28.674000+0200 [INFO] com.couchbase.client.core.node.Node [cb-io-1-3] Disconnected from Node foo
2023-04-22T15:44:28.731000+0200 [INFO] com.couchbase.client.core.config.ConfigurationProvider [cb-computations-3] Selected network configuration: default
2023-04-22T15:44:28.753000+0200 [INFO] com.couchbase.client.core.config.ConfigurationProvider [cb-computations-3] Opened bucket bucket-name

但执行Bucket查询时出现连接超时异常:

2023-04-22T15:45:43.738000+0200 [WARN] com.couchbase.client.core.endpoint.Endpoint [cb-io-1-4] [10.10.7.100:11210][KeyValueEndpoint]: Could not connect to remote socket: Operation timed out: /xxx:11210
2023-04-22T15:45:43.741000+0200 [WARN] com.couchbase.client.core.endpoint.Endpoint [cb-io-1-6] [10.10.7.114:11210][KeyValueEndpoint]: Could not connect to remote socket: Operation timed out: /xxx:11210

已尝试将客户端超时时间延长至数分钟,但仅延迟了错误出现的时间。此外,使用Couchbase SDK Doctor时也无法连接指定DNS:

[ERRO] Failed to fetch configuration via cccp from cb-dns:11207 (error: tls: first record does not look like a TLS handshake)
[ERRO] Failed to fetch terse configuration via http from cb-dns:18091 (error: Get "http://cb-dns:18091/pools/default/b/bucket-name": context deadline exceeded (Client.Timeout exceeded while awaiting headers))
[ERRO] All endpoints specified by your connection string were unreachable, further cluster diagnostics are not possible


可能原因及解决办法

1. 集群节点服务端口无法访问

日志中11210是Couchbase的KV服务端口,超时说明客户端机器无法连通该端口:

  • 用telnet 10.10.7.100 11210或nc -zv 10.10.7.100 11210测试端口连通性,确认端口是否开放。
  • 检查集群侧防火墙、安全组规则,确保允许客户端机器访问11210、11207(CCCP端口)、18091(REST端口)等核心服务端口。

2. DNS解析或TLS配置不匹配

SDK Doctor的报错指向DNS连接和TLS握手问题:

  • 执行nslookup cb-dns或dig cb-dns,确认cb-dns能否正确解析到集群节点IP。
  • 核对TLS配置:若集群启用了TLS,客户端连接字符串需指定ssl=true并配置正确的证书路径;若集群未启用TLS,客户端需关闭TLS连接,避免握手失败。

3. 集群网络配置返回内部IP

日志显示Selected network configuration: default,若集群配置的是内部通信IP,客户端获取配置后无法访问实际节点:

  • 登录Couchbase控制台,检查集群的网络配置,确保对外暴露的IP是客户端可访问的公网/跨网段IP。

4. 临时连接与实际查询的网络差异

初始化时的Connected to Node foo只是短暂获取集群元数据的临时连接,并未维持长连接。后续查询需要建立实际KV连接,此时网络不通就会触发超时:

  • 确认客户端与集群之间的网络链路是否稳定,排查是否存在路由跳转、NAT转发异常等问题。

5. Bucket权限验证问题

虽然日志显示Opened bucket bucket-name,但可能仅获取了元数据,实际查询时权限不足:

  • 在Couchbase控制台检查客户端使用的账号是否拥有目标Bucket的读写权限。

内容的提问来源于stack exchange,提问作者Niko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 21:20:18