首页 理论教育 部署更多微服务堆栈-微服务运维实战

部署更多微服务堆栈-微服务运维实战

时间:2023-11-06 理论教育 版权反馈
【摘要】:让我们部署另一个stack。如果你想深入了解main服务使用的标签,请访问Running Docker Flow Proxy In Swarm Mode With Automatic Reconfiguration教程。下面来部署stack:我们下载了创建服务的stack定义,执行stack deploy命令,并运行stack ps命令列出属于go-demo stack的任务。一旦数据库服务正在运行,main服务就应该恢复正常,会看到三个副本的当前状态为运行中。片刻之后,swarm-listener服务将从go-demo stack中检测到main服务,并向代理发送重新配置自身的请求。

部署更多微服务堆栈-微服务运维实战

让我们部署另一个stack。

这次我们使用的Docker stack定义在vfarcic/go-demo(https://github.com/ vfarcic/go-demo/)库的Compose文件docker-compose-stack.yml(https://github.com/ vfarcic/go-demo/blob/master/docker-compose-stack.yml)中。如下所示:

该stack定义了两个服务(main和db),它们将通过由stack自动创建的默认网络相互通信(不需要docker network create命令)。由于main服务是一个API,它可以通过代理访问,所以也把它连到代理网络。

需要特别注意的一点是,我们使用deploy部分来定义特定于Swarm的参数。这种情况下,main服务定义应该有三个副本和一些标签。与前一个stack一样,我们不会详细介绍每个服务。如果你想深入了解main服务使用的标签,请访问Running Docker Flow Proxy In Swarm Mode With Automatic Reconfiguration(http://proxy.dockerflow.com/swarm-mode-auto/)教程。

下面来部署stack:

我们下载了创建服务的stack定义,执行stack deploy命令,并运行stack ps命令列出属于go-demo stack的任务。输出如下(为简洁起见,删除了ID和ERROR PORTS列):(www.xing528.com)

由于Mongo数据库比main服务要大得多,因此需要更多的时间才能拉取到,从而导致一些故障。go-demo服务如果无法连接到数据库,就会失败。一旦数据库服务正在运行,main服务就应该恢复正常,会看到三个副本的当前状态为运行中。

片刻之后,swarm-listener服务将从go-demo stack中检测到main服务,并向代理发送重新配置自身的请求。可以通过向代理发送HTTP请求来查看结果:

输出如下:

代理被重新配置,并使用基路径/demo将所有请求从go-demo stack转发到main服务。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈