Couchbase Java SDK:打开存储桶时查询失败

des4xlb0  于 2023-05-05  发布在  Java
关注(0)|答案(1)|浏览(119)

我在Java中启动了一个Couchbase客户端,根据日志,似乎可以成功创建客户端。

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

当我尝试查询存储桶时,我收到连接超时异常

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

我已经尝试将客户端的超时时间增加到分钟,但这只是延迟了消息的生成?什么原因会导致成功打开存储桶但查询失败?
//编辑
我尝试使用CB提供的SDK医生,但我不确定这有多大帮助。SDK医生甚至无法连接到指定的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
4nkexdtk

4nkexdtk1#

我是这样解决这个问题的。有人可能和我有同样的设置,并可能从这个答案中受益。因此,我使用的是一个20节点的Couchbase集群,它位于AWS ELB后面。为了让Couchbase客户端打开存储桶,与ELB对话就足够了,因为安全组的配置方式使ELB可以访问。但是查询是另一回事,因为客户机试图连接到集群本身的节点。生成ConnectionTimeout是因为为群集节点配置的安全组不允许访问我的CLI。一旦我添加了相应的安全组规则,连接成功,我可以查询集群。

相关问题