如何一次制作一个微服务实例运行脚本(使用docker)

时间:2017-09-08 13:36:21

标签: node.js docker microservices

我会保持简单。

我有相同微服务的多个实例(使用docker),这个微服务还负责同步缓存。 每隔X次,它从某个存储库中提取数据并将其存储在缓存中。

问题是我只需要这个微服务的一个实例来完成这项工作,如果它失败了,我需要另一个实例来完成它。

有任何建议如何做到这一点简单?

顺便说一句,是否可以选择标记一些微服务docker实例并让他做一些额外的工作?

谢谢!

1 个答案:

答案 0 :(得分:0)

重新启动失败的服务或向上/向下扩展的责任是协调器的责任。例如,在我的最新项目中,我使用了Docker Swarm。

目前,Docker的restart policies是:

  • :退出时不要自动重启容器。这是默认设置。
  • on-failure [:max-retries]:仅当容器以非零退出状态退出时才重新启动。 (可选)限制Docker守护程序尝试的重新启动重试次数。
  • 除非停止:无论退出状态如何,始终重启容器。当您指定always时,Docker守护程序将尝试无限期地重新启动容器。无论容器的当前状态如何,容器也将始终在守护程序启动时启动。
  • 始终:无论退出状态如何,始终重新启动容器,但如果容器之前已经处于停止状态,则不要在守护程序启动时启动容器。