如何知道连接到 Cassandra 的 Native Client
How to know Native Clients connected to Cassandra
我能够在 OpsCenter 的特定节点上看到 160 个本机客户端。
但是应用程序的 none 指向此 DC 或来自此 DC 的任何节点。
如果是上述情况,那 160 个本机客户端是什么?
- 很少是因为我使用 DevCenter 连接到该节点。
- 休息可以是因为DC间通信??
- 没有密钥空间也为此 DC 设置了 RF。我即将停用此 DC。
但不确定那些客户是什么。
有什么想法吗??
在最新版本中,您可以在 cqlsh 中使用 nodetool clientlist
或 select * from system_views.clients ;
来查看实际连接。这将为您提供主机和端口,然后您可以在系统上跟踪哪些应用程序绑定到它。
在较旧的 DSE 版本中,您还可以使用 dsetool perf userlatencytracking [enable|disable]
启用用户延迟跟踪来执行与 select * from dse_perf.user_io;
类似的操作。
我使用以下命令查找连接的客户端:
sudo lsof -i -n -P | grep 9042 | grep ESTABLISHED
通过上面的 运行,我发现了进程,这些进程都是连接到 Cassandra 的 java 应用程序。但是我没有提到这些主机中的任何一个,仍然有人向他们提出请求。
我发现所有这些请求都是因为客户端应用程序的一致性级别:QUORUM。尽管应用程序不直接引用这些 DC,但为了实现 QUORUM 请求,所有 DC 都在进行。
还有 1 件事:
Java 客户端应用程序使用用户名(超级用户)'cassandra',这也需要一致性级别 QUORUM。
9042 上没有 DC 间通信,所以我对 DC 间的某些连接的假设也不正确。
以上是我的问题的解决方案。
我能够在 OpsCenter 的特定节点上看到 160 个本机客户端。 但是应用程序的 none 指向此 DC 或来自此 DC 的任何节点。
如果是上述情况,那 160 个本机客户端是什么?
- 很少是因为我使用 DevCenter 连接到该节点。
- 休息可以是因为DC间通信??
- 没有密钥空间也为此 DC 设置了 RF。我即将停用此 DC。
但不确定那些客户是什么。
有什么想法吗??
在最新版本中,您可以在 cqlsh 中使用 nodetool clientlist
或 select * from system_views.clients ;
来查看实际连接。这将为您提供主机和端口,然后您可以在系统上跟踪哪些应用程序绑定到它。
在较旧的 DSE 版本中,您还可以使用 dsetool perf userlatencytracking [enable|disable]
启用用户延迟跟踪来执行与 select * from dse_perf.user_io;
类似的操作。
我使用以下命令查找连接的客户端:
sudo lsof -i -n -P | grep 9042 | grep ESTABLISHED
通过上面的 运行,我发现了进程,这些进程都是连接到 Cassandra 的 java 应用程序。但是我没有提到这些主机中的任何一个,仍然有人向他们提出请求。
我发现所有这些请求都是因为客户端应用程序的一致性级别:QUORUM。尽管应用程序不直接引用这些 DC,但为了实现 QUORUM 请求,所有 DC 都在进行。
还有 1 件事: Java 客户端应用程序使用用户名(超级用户)'cassandra',这也需要一致性级别 QUORUM。
9042 上没有 DC 间通信,所以我对 DC 间的某些连接的假设也不正确。
以上是我的问题的解决方案。