在写记录到托管在Google Cloud上的Aerospike命名空间时出现AerospikeException



我正在尝试使用java AerospikeClient在谷歌计算引擎上托管的Aerospike命名空间上编写记录。但是得到以下异常:

TODO: Write user recordAerospikeException - Message: Client timeout: timeout=0 iterations=2 failedNodes=2 failedConns=0 lastNode=nullAerospikeException - StackTrace: com. aerospikeclient。AerospikeException$Timeout:客户端超时:Timeout =0 iterations=2 failedNodes=2 failedConns=0 lastNode=nullcom.aerospike.client.command.SyncCommand.execute (SyncCommand.java: 129)com.aerospike.client.AerospikeClient.put (AerospikeClient.java: 299)com.aerospike.developer.training.UserService.createUser (UserService.java: 126)com.aerospike.developer.training.Program.work (Program.java: 120)com.aerospike.developer.training.Program.main (Program.java: 67)

我使用计算引擎实例的外部和内部IP来创建新的AerospikeClient("compute_engine_ip",3000),但同样的错误。需要帮助修复此错误

此异常表示客户端和服务器之间通过端口3000存在连接问题。

请仔细检查您的网络配置接口地址和访问地址设置在aerospike.conf.

Aerospike Network Configuration

您可以通过在服务器节点上运行以下命令来检查哪些ip被发布到客户端。

asinfo -v services

asinfo -v service

上述命令提供的IP地址列表中应该有一个与客户端配置的IP地址匹配。

有可能客户端使用旧的种子服务器Ip地址,而你的新集群有不同的Ip地址。

修改您的clientpolicy并在您的客户端上设置failIfNotConnected=true,以便在种子服务器出现问题时立即失败:

http://www.aerospike.com/apidocs/java/com/aerospike/client/policy/ClientPolicy.html failIfNotConnected

最新更新