Consul是否持久化键值存储?

20
我正在评估几个分布式键值存储系统,其中etcd和Consul看起来都非常有前途。我对服务发现、健康监测和配置服务很感兴趣。
我喜欢Consul提供的额外功能,但我无法确定它是否在服务停机时保留Key-Value存储?看起来etcd提供了持久性。有什么建议吗?
3个回答

20

Consul代理(客户端和服务器)将数据持久化到data-dir目录中。

唯一不持久化数据的情况是在“-dev”模式下启动代理。


10

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

progrium/docker-consul 镜像将所有数据持久化在 /data 目录中。


2
来自核心 Consul 开发人员 message 在 Github 上的一条消息:
任何 API 注册的服务和检查也会将它们的配置写入 data-dir 中,以便在代理重启时进行持久化,因此如果在 Consul 重启之间丢失了该目录,它们的配置将会丢失。当然,这不适用于在静态配置 JSON 文件中创建的服务/检查。
因此,在优雅地关闭集群节点的情况下,键值存储将保存到数据目录中。
在意外关闭(停止)节点的情况下,我没有找到它是否将 KV 存储持久化到数据目录中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接