Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 使用Python Cassandra驱动程序处理多个连接错误_Python 2.7_Cassandra 2.0_Datastax - Fatal编程技术网

Python 2.7 使用Python Cassandra驱动程序处理多个连接错误

Python 2.7 使用Python Cassandra驱动程序处理多个连接错误,python-2.7,cassandra-2.0,datastax,Python 2.7,Cassandra 2.0,Datastax,我使用Datastax提供的Python Cassandra驱动程序连接到单节点Cassandra实例。我的Python代码生成了多个进程(使用多处理模块),每个进程都会打开到该节点的连接,并在退出时将其关闭 以下是我观察到的行为:当生成的进程数量减少(比如说~30个)时,我的代码可以完美地运行。但随着数字的增加,我看到了如下错误(可能并不奇怪): 显然,主机无法接受新连接。这看起来应该由驱动程序或Cassandra负责—让新的连接请求排队,并在释放时授予它们 如何实施此行为?“无法分配请求的地

我使用Datastax提供的Python Cassandra驱动程序连接到单节点Cassandra实例。我的Python代码生成了多个进程(使用多处理模块),每个进程都会打开到该节点的连接,并在退出时将其关闭

以下是我观察到的行为:当生成的进程数量减少(比如说~30个)时,我的代码可以完美地运行。但随着数字的增加,我看到了如下错误(可能并不奇怪):

显然,主机无法接受新连接。这看起来应该由驱动程序或Cassandra负责—让新的连接请求排队,并在释放时授予它们

如何实施此行为?

“无法分配请求的地址”可能表示您的本地端口已用完。这不取决于驱动程序,而是系统配置问题。(它指的是MySQL,但问题是一样的)。请注意,处于TIME_WAIT状态的连接占用本地端口,并且可以在单个程序运行之后继续运行


本文讨论了多种解决方案,包括扩展端口范围、侦听多个IP地址或更改应用程序连接行为。我会考虑应用程序行为,并建议运行更少的进程。根据您试图克服的多处理问题,您可能最好使用(进程计数)感谢@Adam!这篇文章真的很有帮助!我现在正在尝试合并进程。
File "/usr/local/lib/python2.7/dist-packages/cassandra/cluster.py", line 755, in connect
self.control_connection.connect()
File "/usr/local/lib/python2.7/dist-packages/cassandra/cluster.py", line 1868, in connect
self._set_new_connection(self._reconnect_internal())
File "/usr/local/lib/python2.7/dist-packages/cassandra/cluster.py", line 1903, in _reconnect_internal

raise NoHostAvailable("Unable to connect to any servers", errors)
NoHostAvailable: ('Unable to connect to any servers', {'127.0.0.1': error(99, "Tried connecting to [('127.0.0.1', 9042)]. Last error: Cannot assign requested address")})