如何在连接期间找到cassandra驱动程序联系的第一台主机?

问题描述

有没有办法找出驱动程序在初始设置期间首先联系哪个节点?比如有没有办法找到联系的主机10.9.58.64?

WARNING:cassandra.cluster:Cluster.__init__ called with contact_points specified,but no load_balancing_policy. In the next major version,this will raise an error; please specify a load-balancing policy. (contact_points = ['cassandranode1,;cassandranode2'],lbp = None)
DEBUG:cassandra.cluster:Connecting to cluster,contact points: ['cassandranode1,;cassandranode2']; protocol version: 4
DEBUG:cassandra.io.asyncorereactor:Validated loop dispatch with cassandra.io.asyncorereactor._AsyncorePipedispatcher
DEBUG:cassandra.pool:Host 10.9.58.64 is Now marked up
DEBUG:cassandra.pool:Host 10.9.58.65 is Now marked up
DEBUG:cassandra.cluster:[control connection] opening new connection to 10.9.58.64

解决方法

在建立连接后,您可以立即使用 cluster.get_control_connection_host 函数获取有关已建立所谓控制连接的主机的信息。它用于管理目的,例如获取集群中节点状态的更新等。documentation of Java driver 中有更多关于控制连接的信息。