20

我正在评估一些分布式键值存储,etcdConsul看起来都非常有前途。我对服务发现、健康监控和配置服务感兴趣。

我喜欢 Consul 提供的额外功能,但我无法确定它是否会在服务出现故障时保留 Key-Value 存储?似乎 etcd 提供了持久性。有什么建议吗?

4

3 回答 3

19

领事代理(客户端和服务器)将数据保存到数据目录中。

代理不保留数据的唯一情况是它以“-dev”模式启动。

于 2016-04-25T15:07:04.980 回答
10

我最终在 Docker 上运行了progrium/docker-consul映像并添加了一些键值对。使用 Ctrl-C 将其关闭后,当我重新启动容器时,这些值仍然存在。我还通过docker exec从命令行杀死了 Consul ,并且数据也被持久化了。

progrium/docker-consul 镜像将所有数据保存在 /data 目录中。

于 2015-06-16T08:28:07.470 回答
2

来自github 上的核心 Consul 开发人员消息之一:

任何 API 注册的服务和检查也会将其配置写入 data-dir 以在代理重新启动之间保持持久性,因此如果在 Consul 重新启动之间丢失此目录,它们的配置将丢失。当然,这不适用于在静态配置 JSON 文件中创建的服务/检查。

因此,在集群节点正常关闭的情况下,键值存储保存到数据目录。

如果节点意外关闭(停止),我没有发现它是否将 KV 存储保留到数据目录。

于 2016-03-04T11:55:09.750 回答