gpt4 book ai didi

node.js - 我无法从 docker 容器中的 nodejs 应用程序连接到 cassandra

转载 作者:太空宇宙 更新时间:2023-11-04 00:24:23 25 4
gpt4 key购买 nike

我在 docker 容器 (node:7.8.0) 中有一个使用“bridge”网络的 Nodejs 应用程序。我使用 cassandra 驱动程序连接 cassandra 服务器,但在初始化连接时引发超时异常:

Error: The host 172.16.210.101:9042 did not reply before timeout 12000 ms
at OperationTimedOutError.DriverError (node_modules/cassandra-driver /lib/errors.js:14:19)
at new OperationTimedOutError (node_modules/cassandra-driver/lib/errors.js:104:33)
at Connection.onTimeout (node_modules/cassandra-driver/lib/connection.js:645:20)
at Timeout._onTimeout (node_modules/cassandra-driver/lib/connection.js:620:10)
at ontimeout (timers.js:386:14)
at tryOnTimeout (timers.js:250:5)
at Timer.listOnTimeout (timers.js:214:5)

从容器内部,我可以 ping cassandra 服务器并进行 telnet 连接。

使用“主机”网络也可以,并且也可以在“标准”环境中执行应用程序。

非常感谢任何帮助。

最佳答案

好的,我找到了解决方案。

我的主机的MTU是1450,docker0默认使用1500。它会产生错误。

因此,我更改了 docker 的 MTU 并且它起作用了。

我使用 debian 主机,并按照以下步骤操作:

复制服务文件:

cp /lib/systemd/system/docker.service /etc/systemd/system/docker.service

然后,像这样编辑“ExecStart”行:

ExecStart=/usr/bin/dockerd -H fd:// --mtu=1400

最后,重新启动docker:

sudo systemctl daemon-reload
sudo systemctl restart docker

来源: https://rahulait.wordpress.com/2016/02/28/modifying-default-mtu-for-docker-containers/

关于node.js - 我无法从 docker 容器中的 nodejs 应用程序连接到 cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43373124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com