我有两个 Windows 进程,每个进程都在自己的 Docker 容器中,它们都发布和使用 RabbitMQ 消息。这是一个在裸机上运行的经过验证的应用程序,但当进行 dockerized 时,它会在一段时间的空闲后停止使用消息。从 RabbitMQ 管理中可以看到,发布仍然有效,但消息在 15 秒的 Rabbit TTL 后被丢弃。
两个容器内的 Netstat -a 显示与 Docker 主机上的端口 5672 有多个“eastablished”的 tcp 连接。
RabbitMQ 当前作为服务在 Docker 主机上运行(无虚拟化),但我尝试在 Docker 桌面上运行它,效果相同。
设置是 Docker Desktop 4.19,在 Windows 10 Pro x64 v1909 上运行。Hyper-v 交换机是“nat”,我相信这是 Windows 上的默认 Docker 交换机。