我能够从OpsCenter的特定节点上看到160个本机客户端。 但是没有应用程序指向此DC或该DC中的任何节点。
如果是上述情况,那160个本地客户端是什么?
但不确定那些客户是什么。
有什么想法吗?
答案 0 :(得分:2)
在最新版本中,可以在cqlsh中使用nodetool clientlist
或select * 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的某些连接的假设也不正确。
以上是我解决问题的方法。