订阅领事键值

时间:2016-02-15 16:06:34

标签: web-services docker consul

我尝试使用Consul的Key-Value API将JSON配置传递给在我的某个容器中运行的应用。它工作得很好,但API不为密钥提供任何pub-sub功能(只是读/写/删除)。

到目前为止,我设法通过使用Watch feature人工补偿每当密钥更改时重新启动容器,但这让我有必要

  1. 外部配置Consul(加载新配置,或使用CLI,指定要监视的密钥,以及要运行的shell脚本)
  2. 在中途重启我的应用 - 可能会丢失数据的好方法。
  3. 是否有任何编程方式(除了每x秒轮询一次)以获得Consul关键更改的通知,或者我应该退出此解决方案,然后转移到Redis?

1 个答案:

答案 0 :(得分:0)

在快速查看一下领事的消息后,似乎"观看"是一个简单的周期性拉动。您可以在代码中实现类似的功能来实现此目的。

观察者的定期运行:https://github.com/hashicorp/consul/blob/master/watch/plan.go#L46

KeyWatch处理程序:https://github.com/hashicorp/consul/blob/master/watch/funcs.go#L29