如何知道连接到Cassandra的本机客户端

时间:2019-01-16 07:55:16

标签: cassandra datastax-enterprise opscenter

我能够从OpsCenter的特定节点上看到160个本机客户端。 但是没有应用程序指向此DC或该DC中的任何节点。

如果是上述情况,那160个本地客户端是什么?

  • 其中很少是因为我已使用DevCenter连接到该节点。
  • 其他原因可能是由于DC间通信造成的??
  • 没有密钥空间为此DC设置RF。我即将停用该DC。

OpsCenter Native Clients

但不确定那些客户是什么。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

在最新版本中,可以在cqlsh中使用nodetool clientlistselect * from system_views.clients ;来查看实际的连接。这将为您提供主机和端口,然后您可以在系统上跟踪与之绑定的应用程序。

在较旧的DSE版本中,您还可以使用dsetool perf userlatencytracking [enable|disable]启用用户等待时间跟踪,以执行与select * from dse_perf.user_io;类似的操作。

答案 1 :(得分:2)

我已使用以下命令查找连接的客户端:

sudo lsof -i -n -P | grep 9042 | grep ESTABLISHED

通过在上面运行,我发现进程和那些进程都是连接到Cassandra的所有Java应用程序。但是我没有提到这些主机中的任何一个,仍然有请求在它们上。

我发现所有这些请求都是由于客户端应用程序的一致性级别:QUORUM引起的。尽管应用程序不是直接引用这些DC,而是要实现QUORUM请求,但所有DC都在进行

还有1件事: Java客户端应用程序使用用户名(超级用户)“ cassandra”,这也需要一致性级别QUORUM。

Inter DC通信不会在9042上发生,因此我对来自Inter DC的某些连接的假设也不正确。

以上是我解决问题的方法。