Consul 是否保留 Key Value 存储?
Does Consul persist the Key Value store?
我正在评估一些分布式键值存储,etcd 和 Consul 看起来都非常有前途。我对服务发现、健康监控和配置服务感兴趣。
我喜欢 Consul 提供的额外功能,但我无法确定它是否在服务中断时保留 Key-Value 存储? etcd 似乎提供了持久性。有什么建议吗?
我在 Docker 上 运行 progrium/docker-consul 图片并添加了一些键值对。使用 Ctrl-C 关闭它后,当我重新启动容器时,这些值仍然存在。我还通过 docker exec 从命令行杀死了 Consul,数据也被持久化了。
progrium/docker-consul 镜像将所有数据保存在 /data 目录中。
来自一位核心 Consul 开发人员 message github:
Any API-registered services and checks also get their configuration written into data-dir for persistence between agent restarts, so their configuration would be lost if this directory was lost between Consul restarts. This doesn't apply to services/checks created in the static configuration JSON files of course.
因此,在集群节点正常关闭的情况下,键值存储保存到数据目录。
如果节点意外关闭(暂停),我没有发现它是否将 KV 存储持久保存到数据目录。
Consul 代理(客户端和服务器)将数据保存到数据目录中。
代理不保留数据的唯一情况是它以“-dev”模式启动。
我正在评估一些分布式键值存储,etcd 和 Consul 看起来都非常有前途。我对服务发现、健康监控和配置服务感兴趣。
我喜欢 Consul 提供的额外功能,但我无法确定它是否在服务中断时保留 Key-Value 存储? etcd 似乎提供了持久性。有什么建议吗?
我在 Docker 上 运行 progrium/docker-consul 图片并添加了一些键值对。使用 Ctrl-C 关闭它后,当我重新启动容器时,这些值仍然存在。我还通过 docker exec 从命令行杀死了 Consul,数据也被持久化了。
progrium/docker-consul 镜像将所有数据保存在 /data 目录中。
来自一位核心 Consul 开发人员 message github:
Any API-registered services and checks also get their configuration written into data-dir for persistence between agent restarts, so their configuration would be lost if this directory was lost between Consul restarts. This doesn't apply to services/checks created in the static configuration JSON files of course.
因此,在集群节点正常关闭的情况下,键值存储保存到数据目录。
如果节点意外关闭(暂停),我没有发现它是否将 KV 存储持久保存到数据目录。
Consul 代理(客户端和服务器)将数据保存到数据目录中。
代理不保留数据的唯一情况是它以“-dev”模式启动。