Python 2.7 使用Python Cassandra驱动程序处理多个连接错误
我使用Datastax提供的Python Cassandra驱动程序连接到单节点Cassandra实例。我的Python代码生成了多个进程(使用多处理模块),每个进程都会打开到该节点的连接,并在退出时将其关闭 以下是我观察到的行为:当生成的进程数量减少(比如说~30个)时,我的代码可以完美地运行。但随着数字的增加,我看到了如下错误(可能并不奇怪): 显然,主机无法接受新连接。这看起来应该由驱动程序或Cassandra负责—让新的连接请求排队,并在释放时授予它们 如何实施此行为?“无法分配请求的地址”可能表示您的本地端口已用完。这不取决于驱动程序,而是系统配置问题。(它指的是MySQL,但问题是一样的)。请注意,处于TIME_WAIT状态的连接占用本地端口,并且可以在单个程序运行之后继续运行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负责—让新的连接请求排队,并在释放时授予它们 如何实施此行为?“无法分配请求的地
本文讨论了多种解决方案,包括扩展端口范围、侦听多个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")})