2016-02-15 64 views
1

我正在嘗試使用Consul的Key-Value API將JSON配置傳遞給在我的一個容器中運行的應用程序。它工作的很好,但API不提供任何pub-sub功能(只是讀/寫/刪除)的一個關鍵。訂閱Consul鍵值

到目前爲止,我設法人爲地使用Watch feature重啓容器每當關鍵的變化進行補償,但給我留下需要

  1. 在外部配置領事(或裝入新配置,或使用CLI,指定要觀看的密鑰以及要運行的外殼腳本)
  2. 在運行中重新啓動我的應用程序 - 這是一種可能會丟失數據的好方法。

是否有任何編程方式(除了每x秒輪詢)才能得到Consul關鍵更改的通知,或者我應該退出此解決方案並轉移到Redis?

+0

你好,我嘗試做領事發布 - 訂閱功能。我已閱讀您的問題,並希望知道您的反饋,謝謝。 – icarbajo

回答

0

快速查看領事的資料後,看起來「手錶」是一個簡單的定期拉動。你可以在你的代碼中實現類似的東西來實現這一點。

觀察者的週期性運行:https://github.com/hashicorp/consul/blob/master/watch/plan.go#L46

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

+0

謝謝。我可以使用現有API直接針對密鑰實現定期拉取。我只是想知道是否還有其他東西我錯過了。似乎應該有一個用於更改通知的API端點。或者是我需要請求的新功能? –