如何为 cassandra 设置读取请求超时

Posted

技术标签:

【中文标题】如何为 cassandra 设置读取请求超时【英文标题】:How to set read request timeout for cassandra 【发布时间】:2020-03-24 00:47:21 【问题描述】:

我尝试为具有不同读取请求超时的 cassandra 创建新端点。具有大数据请求的具有大超时的端点响应。 我找到了带有 com.datastax.cassandra 驱动程序和带有 read_request_timeout 参数的 cassandra-default.yaml 的 Scala 代码。如何在 Cluster builder 或代码的其他地方设置 read_request_timeout ?

Cluster
      .builder
      .addContactPoints(cassandraHost.split(","): _*)
      .withPort(cassandraPort)
      .withRetryPolicy(DefaultRetryPolicy.INSTANCE)
      .withLoadBalancingPolicy(
        new TokenAwarePolicy(DCAwareRoundRobinPolicy.builder().build())).build



# How long the coordinator should wait for read operations to complete
read_request_timeout_in_ms: 5000

【问题讨论】:

【参考方案1】:

在查询级别使用:

session.execute(
        new SimpleStatement("CQL HERE").setReadTimeoutMillis(65000));

如果你想在集群构建时设置使用:

Cluster cluster = Cluster.builder()
        .addContactPoint("127.0.0.1")
        .withSocketOptions(
                new SocketOptions()
                        .setConnectTimeoutMillis(2000))
        .build();

Socket Options

【讨论】:

谢谢,代码的第二部分有 .setReadTimeoutMillis 而不是 .setConnectTimeoutMillis。

以上是关于如何为 cassandra 设置读取请求超时的主要内容,如果未能解决你的问题,请参考以下文章

如何为不接受取消令牌的异步函数设置超时?

Cassandra 具有长 IN 运算符的慢速(rpc 超时)读取请求

如何为网站设置 JSON API 超时?

Cassandra - 频繁的跨节点超时

NestJS - 请求超时

如何为 JAX-WS Web 服务客户端设置超时?