在GNU/Linux中,我所做的应用程序有一个问题。它在我的开发环境中工作,大多数组件在dockers中运行,或者本地运行,但是在需要部署它的服务器环境中,它是随机的(经常,但并不总是)失败。
基础设施:
[App in Ubuntu Server 20.04 host-1] <--->[router+firewall]<---> [Ubuntu Server 20.04 host-2]这两台服务器似乎都有足够的资源-4 CPU,4 GB RAM。
运行应用程序的机器必须连接到运行在该RabbitMQ中的host2,并且在不同的队列中发布(我在这里没有看到失败)和订阅(往往失败)。
问题是:有时它可以工作(有一个路由器+防火墙,但问题似乎不在那里),但很多时候,由于某种原因,这两个连接都会随机失败。我检查了MTU (1500,它在其他部署中工作),ulimit看起来还可以,等等,但是我没有发现这个问题.
很多次兔子连接都启动了,但是最终,我得到了兔子错误消息:
AMQPConnector - reporting failure: AMQPConnectorAMQPHandshakeError: ProbableAuthenticationError ..("ConnectionClosedByBroker: (403) 'ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.'"这是不正确的,因为我百分之百确定的证书是可以的,事实上,它们有时是有用的。
重新尝试了连接,但没有成功。
来自兔子原木:
[info] <0.16188.30> Closing all channels from connection
'xxx.yyy.zzz.kkk:41426 -> yyy.zzz.kkk.zzz:5672' because it has been
closed
[info] <0.16192.30> accepting AMQP
connection <0.16192.30> (xxx.yyy.zzz.kkk:41430 ->
yyy.zzz.kkk.zzz:5672)
[error] <0.16192.30>
Error on AMQP connection <0.16192.30> (xxx.yyy.zzz.kkk:41430 ->
yyy.zzz.kkk.zzz:5672, state: starting): PLAIN login refused: user
'someuser' - invalid credentials我试着心跳500和90,并阻止连接超时300.
对我来说,有时心跳似乎没有被接受。
我很迷茫,我想这可能是一个性能或网络问题,就像在其他控制环境中一样,所以我能检查什么?
发布于 2021-09-11 11:21:06
令人惊讶的是,最明显的原因似乎是实际的原因:一个虚拟网络在云计算平台中被破坏了。
调试过程是如何完成的(以便说服网络工程师检查):
这里是我停止查看兔子配置/参数的时候,等等。
最后,强制使用另一个网络进行云部署,并且起了作用。
这最终证实了这是一个网络问题,并将问题转交给网络工程师。
https://stackoverflow.com/questions/69112686
复制相似问题