无法使用 phpcassa 连接到 localhost:9160

Posted

技术标签:

【中文标题】无法使用 phpcassa 连接到 localhost:9160【英文标题】:Could not connect to localhost:9160 with phpcassa 【发布时间】:2011-12-01 12:19:48 【问题描述】:

我遇到了这样的问题:当负载增加到每秒 200 个脚本查询时,phpcassa 会导致这样的异常

Error connecting to localhost:9160: TException: TSocket: Could not connect to localhost:9160 (Cannot assign requested address [99])
Error connecting to localhost:9160: TException: TSocket: Could not connect to localhost:9160 (Cannot assign requested address [99])
PHP Fatal error:  Uncaught exception 'NoServerAvailable' with message 'An attempt was made to connect to every server twice, but all attempts failed. The last error was: TException:TSocket: Could not connect to localhost:9160 (Cannot assign requested address [99])' in /var/www/megaumnik/context/connection.php:232
Stack trace:
#0 /var/www/megaumnik/context/connection.php(257): ConnectionPool->make_conn()
#1 /var/www/megaumnik/context/connection.php(351): ConnectionPool->get()
#2 /var/www/megaumnik/context/connection.php(286): ConnectionPool->call('describe_keyspa...', 'thegame')
#3 /var/www/megaumnik/context/columnfamily.php(194): ConnectionPool->describe_keyspace()
#4 /var/www/megaumnik/data/getData.class.php(265): ColumnFamily->__construct(Object(ConnectionPool), 'username')
#5 /var/www/megaumnik/data/test.php(6): getData->getDataByKey('username', '317')
#6 main
  thrown in /var/www/megaumnik/context/connection.php on line 232

脚本有 4 个来自不同列族的 $cf->get()。每个列族有 1000 行

【问题讨论】:

【参考方案1】:

听起来您可能正在达到打开文件的限制。您可以使用 'ulimit -a' 查看当前限制。

要增加限制,您可以通过以下两种方式之一设置新限制。首先,您可以执行类似“ulimit -n 10000”之类的操作,这是临时的,只会影响由该 shell 启动的进程。要永久增加限制,您需要在 /etc/security/limits.conf 中添加如下所示的一行:

*               -       nofile      10000

为使此功能生效,我认为您需要重新登录。

【讨论】:

以上是关于无法使用 phpcassa 连接到 localhost:9160的主要内容,如果未能解决你的问题,请参考以下文章

似乎无法连接到 mysql、localhost?

无法在 127.0.0.1:3306 连接到 mysql,用户 'root'@'localhost' 的用户 root 访问被拒绝(使用密码:YES)

Docker 构建失败 - 带有 GKE 的 Gitlab CI。无法通过 tcp://localhost:2375 连接到 Docker 守护程序。 docker 守护进程是不是正在运行?

错误:使用 mongoose 连接到 MongoDb Atlas 时的 queryTxt ETIMEOUT

如何只允许隧道连接到端口?

phpcassa 连接服务器失败