cassandra.cluster.NoHostAvailable:无法连接到任何服务器

jOa*_*sis 5 cassandra cassandra-3.0

我正在尝试使用 python cassandra 驱动程序访问远程 cassandra 集群

cluster = Cluster(['192.168.19.1'], port=9042) session = cluster.connect()

然而,它给了我`

cassandra.cluster.NoHostAvailable:('无法连接到任何服务器',{'192.168.19.1':错误(无,“尝试连接到[('192.168.19.1',9042)]。最后一个错误:超时”) })

` 我的 cassandra 集群在 nodetool 状态下显示:

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns (effective)  Host ID                                  Rack
UN  192.168.19.1  239,55 KiB  256          67,0%             e45b9451-0081-4b12-9acb-1bc9   92953846  rack1
UN  192.168.19.2  263,95 KiB  256          63,8%             662df0f8-4209-4b06-9d46-f558   ad10ff0a  rack1
UN  192.168.19.3  293,59 KiB  256          69,2%             aa00fc80-6a8a-4bb0-8645-ef3f   58a72754  rack1
Run Code Online (Sandbox Code Playgroud)

例如 - 我的 cassandra.yaml 文件的参数:192.168.19.1 如下:

rpc_address: 192.168.19.1

监听地址:192.168.19.1

native_transport_port:9042

start_native_transport: 真

似乎是什么问题?

mir*_*phd 1

尝试增加连接超时,即使在同一主机上(更不用说您的远程主机),连接超时也可能会令人惊讶地长。

conn_timeout_ms = 200

cas_cluster = Cluster(contact_points=['192.168.19.1'], 
                      port=9042,
                      connect_timeout=conn_timeout_ms / 1000 # ms -> s
                      )

cas_session = cas_cluster.connect()

Run Code Online (Sandbox Code Playgroud)