向Docker Swarm中的所有实例广播REST API调用

向Docker Swarm中的所有实例广播REST API调用,docker,docker-swarm,Docker,Docker Swarm,我有一个Docker容器,它是RESTAPI Web服务器。我想在Docker Swarm中使用此Web服务器,并且Web服务器实例之间将没有连接。RESTAPI调用之一用于更新Web服务器,并向其提供新数据。如何向Docker Swarm中的所有实例广播此REST API调用,以确保每个实例都具有相同的数据?问题 您定义了一个有状态服务Web服务器,该服务器应在多个任务中复制。客户端(例如使用浏览器)能够使用REST API修改Web服务器的状态。由于客户端只连接到其中一个任务,其他任务将不同

我有一个Docker容器,它是RESTAPI Web服务器。我想在Docker Swarm中使用此Web服务器,并且Web服务器实例之间将没有连接。RESTAPI调用之一用于更新Web服务器,并向其提供新数据。如何向Docker Swarm中的所有实例广播此REST API调用,以确保每个实例都具有相同的数据?

问题

您定义了一个有状态服务Web服务器,该服务器应在多个任务中复制。客户端(例如使用浏览器)能够使用REST API修改Web服务器的状态。由于客户端只连接到其中一个任务,其他任务将不同步。现在您想知道如何保持所有任务同步

答复

Docker swarm目前不是为有状态服务构建的,因此Docker目前没有提供API来解决您的问题。但他们必须意识到这个问题,这可能就是Docker公司为什么要建立一个可扩展的分布式存储系统的原因

考虑到这一点,您可以给Infinite一个机会,并且可能依赖于某种东西,它无论如何都会集成到Docker中,或者至少非常简单

可能的进一步解决办法:

当然,您可以使用任何其他传统的NFS/DFS解决方案在任务之间同步数据。甚至考虑将存储完全抽象为一个数据库容器。

进一步阅读:


您对Web服务器实例之间没有连接的确切含义是什么?您能否提供更多关于预期体系结构的信息?例如,什么的每一个实例?您的意思是要将Web服务器的多个实例部署为多个容器,这些容器应彼此同步其数据吗?每个Docker容器将独立于其他容器。每个容器都是Docker Swarm集群的成员,并包含一个REST API Web服务器。容器之间不会共享数据。是否有一种方法可以使用我定义的REST API在每个容器之间同步数据?请举例说明:我有一个基本映像/Dockerfile,它描述了如何构建我的Web服务器。从这张图片中,我得到了两个容器:C1和C2。如果来自C1的Web服务器通过其REST API接收新数据,C2应相应地更新其数据。如果您更新了您的问题,还请包括以下信息:哪个组件负责存储数据?数据库?如果是,它是基础图像的一部分吗?但实际上,我真正的问题是:docker与跨多个容器更新应用程序有什么关系?Swarm服务将是一个独立的容器—没有数据库,它将接收REST API调用上传的数据。它将数据存储在容器中,以便将来使用其他RESTAPI调用。Swarm将运行此服务的多个实例,因此我正在寻找一种方法,将相同的数据传播到Swarm中的所有服务实例。我希望通过Docker实现这一点,也许迭代所有实例的列表并生成相同的REST API,但我更希望API调用方不必进行此迭代——这是自动进行的。