【问题标题】:Subscribing to Consul Key-Value订阅 Consul Key-Value
【发布时间】:2016-02-15 16:06:34
【问题描述】:

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

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

  1. 外部配置 Consul(加载新配置,或使用 CLI 指定要监视的键和要运行的 shell 脚本)
  2. 在运行过程中重新启动我的应用 - 一种可能会丢失数据的好方法。

是否有任何编程方式(除了每 x 秒轮询一次)来获取 Consul 中的关键更改的通知,还是我应该放弃这个解决方案并转向 Redis?

【问题讨论】:

  • 你好,我尝试用 Consul 做一个 pub-sub 功能。我已阅读您的问题,我想知道您的反馈,谢谢。

标签: web-services docker consul


【解决方案1】:

在快速浏览了 consul 的资源之后,似乎“watch”是一个简单的周期性拉动。你可以在你的代码中实现类似的东西来实现这一点。

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

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

【讨论】:

  • 谢谢。我可以使用现有 API 直接针对密钥实现定期拉取。我只是想知道我是否还缺少其他东西。似乎应该有一个用于更改通知的 API 端点。或者这是我需要请求的新功能?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-23
  • 2015-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-01
相关资源
最近更新 更多