我有一个Docker容器,它是REST API webserver。我想在Docker Swarm中使用这个Web服务器,并且webserver实例之间不会有任何连接。其中一个REST API调用用于更新Web服务器(为其提供新数据)。如何将此REST API调用广播到Docker Swarm中的所有实例,以确保每个实例都具有相同的数据?
答案 0 :(得分:0)
<强>问题强>
定义一个有状态服务(webserver),应该以多个任务结束复制。客户端(例如,使用浏览器)能够使用REST API修改web服务器的状态。由于客户端仅连接到其中一个任务,因此其他任务不同步。现在您想知道如何使所有任务保持同步。
<强>答案强>
Docker swarm目前不是为有状态服务构建的,因此Docker没有提供API来解决您的问题(现在)。但是他们已经意识到了这个问题,这可能是Docker acquired Infinit建立可扩展的分布式存储系统的原因所在。
考虑到这一点,你可以给Infinit一个机会,并且可能依赖于集成到Docker中的东西,或者至少非常简单。
可能的进一步解决方案:
当然,您可以使用任何其他传统的NFS / DFS解决方案在任务之间同步数据。或者甚至考虑将存储完全抽象到一个数据库容器中。
进一步阅读: