如何在K8s环境中模拟Cassandra超时?

问题描述 投票:0回答:1

我正在使用运行与 Cassandra 数据库集群交互的应用程序(WEB API/接口)的 K8s 环境。我需要模拟网络延迟或专门针对从 Cassandra 集群到我的 Kubernetes Pod 之一的响应引入延迟。 我无法接触 Cassandra DB 集群或特定的 apache pod(由于实验室使用而受到限制)。

卡桑德拉版本:

$ nodetool version ReleaseVersion: 4.1.1 $

最简单的方法是在K8s POD中使用“tc”(流量控制),但它不可用,并且无法安装它(安装包来自研发,需要额外的开发。

作为替代方法,我尝试将“cas-q.request.timeout.ms”参数调整为 1ms,并引入额外负载以增加超时的可能性,但没有成功。

也许有一种方法可以在 K8s POD 之外引入一些延迟,或者其他一些我没有考虑到的方法。

cassandra connection-timeout cassandra-4.0
1个回答
0
投票

一种可能性是在应用程序中配置 Cassandra 驱动程序并设置非常低的请求超时。这意味着您不需要访问 Cassandra 集群,也根本不需要接触 Cassandra pod。

例如,如果您使用 Java 驱动程序,则可以将

application.conf
中的请求超时设置为几毫秒:

datastax-java-driver {
  basic.request {
    timeout = 2 seconds
  }
}

详情请参阅Cassandra Java驱动程序参考配置。干杯!

© www.soinside.com 2019 - 2024. All rights reserved.