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



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

问题

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

Dockerswarm 目前不是为有状态服务构建的,因此 Docker 没有提供 API 来解决您的问题(现在)。但他们意识到了这个问题,这可能就是Docker收购Infinit公司的原因,该公司建立了一个可扩展的分布式存储系统。

考虑到这一点,你可以给Infinit一个机会,并且可能依赖于集成到Docker中的东西,或者至少非常简单。

可能的进一步解决方案:

  • 阻击者
  • 米尼奥
  • 雷西里奥
  • 雷克斯射线
  • vSpehre

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

延伸阅读:

  • forums.docker.com - 有状态容器

最新更新