Spring Boot配置连远程Couchbase却连本地/0.0.0.0问题求助
Spring Boot连接远程Couchbase 7.1.1 EE异常问题
环境版本
- Spring Boot: 2.3.1.RELEASE
- Couchbase Server: 7.1.1 EE
- spring-data-couchbase: 4.3.5(内置couchbase java-client: 3.2.7)
问题现象
- 应用与Couchbase同服务器部署时连接正常,远程部署则无法建立连接
- Couchbase控制台显示服务器IP为
0.0.0.0,手动修改该IP无效(其他环境安装Couchbase默认IP为127.0.0.1) - 本地安装Couchbase时,应用本该写入远程集群的数据被存入本地实例
- 应用日志显示:启动初期能连接远程IP
10.109.97.82,随后自动切换到0.0.0.0,多次出现连接/0.0.0.0:11210被拒绝的错误
问题原因
Couchbase集群初始化时绑定了0.0.0.0,客户端连接后会从集群获取节点列表,而集群返回的节点地址是0.0.0.0——这个地址无法被远程客户端路由,导致连接失败;如果本地存在Couchbase实例,客户端会自动 fallback 到本地,进而出现数据存错位置的情况。
解决步骤
1. 修改Couchbase集群节点绑定IP
Couchbase 7.x 控制台修改IP可能不生效,需通过命令行操作:
- 登录Couchbase服务器,执行以下命令(替换
<管理员账号>``<管理员密码>为实际信息,10.109.97.82为远程可访问的IP):
couchbase-cli node-init -c 127.0.0.1:8091 --username <管理员账号> --password <管理员密码> --node-init-data-path /opt/couchbase/var/lib/couchbase/data --node-init-index-path /opt/couchbase/var/lib/couchbase/index --node-init-hostname 10.109.97.82
- 重启Couchbase服务:
systemctl restart couchbase-server
- 登录Couchbase控制台确认节点IP已更新为
10.109.97.82
2. 配置Spring Boot客户端强制使用指定节点
若暂时无法修改集群配置,可在Spring Boot配置中强制客户端仅使用指定远程IP,绕过集群返回的节点列表:
在application.properties中添加:
spring.data.couchbase.bootstrap-hosts=10.109.97.82 spring.data.couchbase.env.io.config.enable-hostname-verification=false spring.data.couchbase.env.io.config.kv-endpoints=10.109.97.82:11210 spring.data.couchbase.env.io.config.view-endpoints=10.109.97.82:8092 spring.data.couchbase.env.io.config.query-endpoints=10.109.97.82:8093
或YAML格式:
spring: data: couchbase: bootstrap-hosts: 10.109.97.82 env: io: config: enable-hostname-verification: false kv-endpoints: 10.109.97.82:11210 view-endpoints: 10.109.97.82:8092 query-endpoints: 10.109.97.82:8093
3. 验证连接
- 重启Spring Boot应用,检查日志是否不再出现
0.0.0.0的连接错误 - 插入测试文档,确认数据写入远程Couchbase集群而非本地实例
内容的提问来源于stack exchange,提问作者Neha Sahni
相关产品推荐
相关产品推荐

