订阅Consul键值

我正在尝试使用Consul的Key-Value API将JSONconfiguration传递给在其中一个容器中运行的应用程序。 它工作的很好,但API不提供任何pub-subfunction(只读/写/删除)的一个关键。

到目前为止,我设法通过使用Watchfunction人为地补偿重新启动容器,每当关键更改,但是这留下了需要

  1. 外部configurationConsul(加载一个新的configuration,或者使用CLI,指定一个要监视的密钥,并运行一个shell脚本)
  2. 在中途重新启动我的应用程序 – 一个潜在的数据丢失的好方法。

是否有任何程序化的方式(每隔X秒轮询除外)获得领事关键变更的通知,还是应该退出此解决scheme,并转移到Redis?

简单的看一下领事的消息来源,似乎“看”是一个简单的定期拉动。 你可以在你的代码中实现类似的东西来实现这一点。

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

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