让我们创建已经很熟悉的demo服务:
请注意这些标签,前面的章节中没有使用它们。现在事情发生了变化,它们是服务定义的关键部分。com.df.notify=true告诉swarm-listener服务在创建或删除服务时是否发送通知。由于不想将go-demo-db服务添加到代理,因此只为go-demo服务定义标签。如果手动重新配置代理,其余标签与我们使用的查询参数相匹配。唯一的区别是标签前缀为com.df。有关查询参数的列表请参阅(https://github.com/vfarcic/docker-flow-proxy#reconfigure)项目的Reconfiguration部分。
现在应该等到所有的服务都在运行。可以通过执行以下命令来查看其状态:
一旦所有副本都设置为1/1,就可以通过代理向go-demo服务发送请求,从而看到com.df标签的效果:
输出如下:(www.xing528.com)
我们向代理(唯一监听端口80的服务)发送了一个请求,并收到了go-demo服务的响应。一旦go-demo服务被创建,代理就会自动进行配置。
这个流程的工作方式如下。
Docker Flow Swarm Listener在一个Swarm manager节点内部运行,并通过Docker API查询新创建的服务,一旦找到新的服务,它就会查找其标签。如果服务包含标签com.df.notify(它可以包含任何值),则其余以com.df开头的标签将被检索。所有这些标签都用于组成请求参数。这些参数将追加到在swarm-listener服务中定义的由环境变量DF_NOTIF_CREATE_SERVICE_URL指定的地址,最后发出一个请求。在这种特殊情况下,这个请求将被用于重新配置服务go-demo(服务的名称)的代理,服务使用/demo作为路径,并在端口8080上运行。由于只运行代理的单个实例,因此在此示例中,distribute标签不是必需的。但是,在生产中,应该运行至少两个代理实例(用于容错),参数distribute意味着重新配置所有代理实例。
请参阅重新配置(https://github.com/vfarcic/docker-flow-proxy#reconfigure)部分以获取与代理有关的所有参数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。