Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 卡桑德拉c++;驱动程序不断尝试重新连接到不再存在的端点_C++_Cassandra_Dns_Kubernetes_Datastax - Fatal编程技术网

C++ 卡桑德拉c++;驱动程序不断尝试重新连接到不再存在的端点

C++ 卡桑德拉c++;驱动程序不断尝试重新连接到不再存在的端点,c++,cassandra,dns,kubernetes,datastax,C++,Cassandra,Dns,Kubernetes,Datastax,我在kubernetes应用程序中使用Apache Cassandra。Cassandra通过此服务器部署为一个3节点集群 该图表利用kubernetes的无头服务使Cassandra端点可用,因此kubernetes DNS中有一个用于这些端点的条目 我有一个C++应用程序运行在库伯内斯荚中,它与CasDANRA交互,它使用DNS条目连接来解决端点。根据驱动程序使用指南,应用程序与Cassandra对象只有一个连接。连接在程序开始时初始化,如果未能初始化连接或稍后执行查询,则程序实际上会失败

我在kubernetes应用程序中使用Apache Cassandra。Cassandra通过此服务器部署为一个3节点集群

该图表利用kubernetes的无头服务使Cassandra端点可用,因此kubernetes DNS中有一个用于这些端点的条目

我有一个C++应用程序运行在库伯内斯荚中,它与CasDANRA交互,它使用DNS条目连接来解决端点。根据驱动程序使用指南,应用程序与Cassandra对象只有一个连接。连接在程序开始时初始化,如果未能初始化连接或稍后执行查询,则程序实际上会失败

一切正常,但由于某些原因,cassandra节点/吊舱最终可能会出现故障。当这种情况发生时,他们会重生,但会被重新分配一个不同的IP。似乎C++驱动程序能够从DNS获得新的端点,而不需要任何附加代码。但是,在这种情况下,客户端的连接不会关闭,而且在某种程度上,以前的端点似乎仍保留在连接池中。这将导致一系列类似于以下内容的日志事件:

1531920921.161 [WARN] (src/pool.cpp:420:virtual void cass::Pool::on_close(cass::Connection*)): Connection pool was unable to reconnect to host XXX.XXX.XXX.XX because of the following error: Connection timeout

每[重新连接超时]弹出一次。IP重新分配越多,日志消息就越多,您可以猜测,对于长寿命的应用程序,日志消息可能会达到相当大的数量


驱动程序的API中是否有允许处理该问题的功能?还是一种处理客户端的好方法/推荐方法,更一般地说?在驱动程序外部,一个选项可以是在客户端代码中重置连接,但是(虽然我可能漏掉),但我没能看到一种“捕获”此类事件的方法:它们只出现在日志中。< /P> C++驱动程序的什么版本?CasDANRA版本2.2.0的AlexOtt Datastax C++驱动程序
1531920921.894 [WARN] (src/pool.cpp:420:virtual void cass::Pool::on_close(cass::Connection*)): Connection pool was unable to reconnect to host XXX.XXX.XXX.XX because of the following error: Connect error 'host is unreachable'