我正在创建的 Aerospike 连接的 ClientPolicy 的 minConnsPerNode = 10。当我在 C# 中使用以下语法创建连接时
using (AerospikeClient client = new AerospikeClient(moduleClientPolicy, address, port))
{
}
创建的 10 个连接(由于 minConnsPerNode)是否会在“}”之后关闭,或者它们将被移回连接池?
如果它们被移回连接池,我使用上述语法再次建立的下一个连接将使用池中的连接,对吗?
另外,有没有办法计算出与 Aerospike 建立的连接数量?
我不确定您关于
minConnsPerNode
的问题,但至于您的最后一个问题,如何计算与 Aerospike 建立的连接数,如果您的意思是当前对 Aerospike 节点开放的连接数,那么您可以使用 asadm ,特别是 i net
命令将打印有关 Aerospike 网络的信息,例如:
Admin> i net
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Network Information (2020-12-18 18:15:50 UTC)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cluster| Node| Node ID| IP| Build|Migrations|~~~~~~~~~~~~~~~~~~Cluster~~~~~~~~~~~~~~~~~~|Client| Uptime
| | | | | |Size| Key|Integrity| Principal| Conns|
bob-cluster-a| 10-0-0-1.heln.qwest.net:3000| BB9010016AE4202| 10.0.0.1:3000|E-4.9.0.18| 0.000 | 2|C3F2BCB417C3|True |BB9020016AE4202| 4|00:04:59
bob-cluster-a| 10-0-0-2.heln.qwest.net:3000|*BB9020016AE4202| 10.0.0.2:3000|E-4.9.0.18| 0.000 | 2|C3F2BCB417C3|True |BB9020016AE4202| 3|00:04:59
Number of rows: 2
将在
Client conns
列下显示集群每个节点当前打开的连接数。
minConnsPerNode 连接池中保持打开的连接数。如果连接数低于该数量,则趋势线程将打开新连接并将其放入池中。如果在某些情况下使用时关闭套接字,则可能会发生这种情况。当请求新连接时,如果池中有连接,则使用它们。因此,总的来说,您对 minConnsPerNode 的理解是正确的。 (确保服务器使用 proto-fd-idle-ms =0 [默认],因此连接不会被服务器关闭,然后必须由倾向线程重新打开以维护 minConnsPerNode。服务器使用 keep-alive 消息来检测废弃的连接客户端并关闭套接字。)