Python Cassandra 驱动程序:连接到服务器上的 Docker 容器 - cassandra.UnresolvableContactPoints:{}

Python Cassandra driver: connect to Docker container on server - cassandra.UnresolvableContactPoints: {}

我在自定义服务器上的 docker 容器中运行 cassandra。

我这样启动 cassandra docker:

docker run  --name cassandra -p 9042:9042 -d cassandra:latest

当我想通过来自 datastax 的 python cassandra 驱动程序连接到服务器时,如下所示:

from cassandra.cqlengine import connection

connection.setup(["http://myserver.myname.com"], "cqlengine", protocol_version=3)

抛出异常:

    File "C:\LONG\PATH\TO\venv\lib\site-packages\cassandra\cqlengine\connection.py", line 106, in setup
        self.cluster = Cluster(self.hosts, **self.cluster_options)
      File "cassandra\cluster.py", line 1181, in cassandra.cluster.Cluster.__init__

    cassandra.UnresolvableContactPoints: {}
python-BaseException

经过数小时的 docker 网络权限搜索,我找到了简单的解决方案,所以也许这对您也有帮助。

简单的解决方案是从服务器 url 中删除“http://”并更改我的代码

connection.setup(["http://myserver.myname.com"], "cqlengine", protocol_version=3)

connection.setup(["myserver.myname.com"], "cqlengine", protocol_version=3)

我认为这是一个 docker 网络问题,我花了很多时间才将其归因于这个简单的错误