【问题标题】:How can I know whether the connection to Cassandra was lost with the C++ driver?我如何知道 C++ 驱动程序是否丢失了与 Cassandra 的连接?
【发布时间】:2017-07-03 10:18:51
【问题描述】:

我想知道是否有办法让我知道 C++ 驱动程序是否丢失了与所有 Cassandra 节点的连接。

我的应用程序有一个代理服务器,它连接到 Cassandra 一次并永远坐在那里。其他服务将连接到该代理服务器并根据需要发送请求。

效果很好,直到与 Cassandra 集群的所有连接都丢失。在那种特殊情况下,代理似乎没有恢复......

有没有办法让我知道/检测到所有连接都已丢失,从而再次尝试connect()

【问题讨论】:

  • 我也有同样的问题。也许最好的方法是发出请求并从驱动程序获得错误响应。
  • 那是我的问题...如果我从我必须在不到 1 秒内回复的客户那里这样做...必须等待 10 秒不是一件好事。默认超时。

标签: c++ networking cassandra


【解决方案1】:

我有同样的情况,最好的解决方案是检查您向 Cassandra 发出的请求/查询中的错误。 我刚刚对此进行了测试,如果所有连接都消失了,驱动程序会立即返回:

CASS_ERROR_LIB_NO_HOSTS_AVAILABLE

这就是我要自己使用的解决方案,因为我找不到更好的解决方案,实际上这个解决方案对我有用,因为它不会等待特定的超时,而是立即返回。

【讨论】:

    猜你喜欢
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 2016-10-19
    • 2011-11-02
    • 2017-08-07
    • 2012-08-26
    • 2019-09-07
    相关资源
    最近更新 更多