Couchbase Elasticsearch连接器连接Couchbase集群报错解决方案问询
Couchbase Elasticsearch连接器连接报错解决方案
问题根因
两次报错本质是混淆了Couchbase不同服务的端口用途:
第一次报错:
Exception in thread "main" com.couchbase.client.core.error.InvalidArgumentException: Specifying 8091 or 18091 in the connection string "domain:8091" is likely not what you want...
Couchbase的8091/18091是Web管理服务端口,仅用于界面访问、集群管理操作,连接器同步数据依赖KV服务的DCP协议,不能使用管理端口建立连接。
第二次报错:
com.couchbase.client.dcp.deps.io.netty.channel.ConnectTimeoutException: Handshake did not complete before deadline...
去掉端口后连接器会默认请求KV服务标准端口11210(非TLS)/11207(TLS),超时说明当前网络环境下该端口不可达,要么是有网络拦截,要么是你的Couchbase集群使用了自定义KV端口。
解决步骤
- 第一步:修改
default-connector.toml中的hosts配置,仅保留域名,不要携带任何端口:hosts = ["domain"] - 第二步:追加KV端口配置,根据你的Couchbase实际部署情况填写:
- 非TLS连接且用自定义KV端口:新增配置
couchbase.kvPort = 你的实际KV服务端口 - TLS连接且用自定义KV端口:新增配置
couchbase.kvSslPort = 你的实际TLS KV服务端口
- 非TLS连接且用自定义KV端口:新增配置
- 第三步:验证网络连通性
确认运行连接器的服务器可以正常访问Couchbase节点的KV端口,检查路径上的防火墙、安全组规则是否放行对应端口,不要仅验证18091管理端口的连通性。 - 特殊场景适配:如果Couchbase是容器化/云托管部署,对外暴露的KV端口和集群内部端口不一致,需要额外配置Couchbase的Alternate Address,保证连接器可以正确获取到对外可访问的节点地址与端口。
内容的提问来源于stack exchange,提问作者Karthiknathan.C
相关产品推荐
相关产品推荐

