docker集装箱通信
我正在努力实现以下目标:
- 有多个docker容器执行一些时期的任务
- 有一个组件在本地主机上运行,除了其他任务pipe理(启动/停止)的容器
- 有时在容器中运行的服务需要发布结果。 因此它们使用ZMQ绑定到一个暴露的端口并发送结果。
- 运行在本地主机上的组件订阅特定的端口并在其上侦听。
问题是每个容器都需要localhostnetworking上的特定/不同的端口来绑定和发布结果。 这意味着我需要听所有的集装箱港口。
是否有可能听一个单一的端口,所有的容器在那里发布他们的工作?
如果不是,那么选项是什么?
谢谢
尝试在容器中使用ZMQ,容器将工作发布到zmq_container,并从本地主机,您也可以订阅zmq_contaniner的频道(使用一个端口)
选项:
- 将结果发布到中央共享数据库( 如mysql或mongodb容器 ),并从中读取
- 将结果发布到所有中央共享消息队列( 如kafka容器 )并从中读取。 ( 对于可靠和实时的消息交换,kafka将是更强大的解决scheme )