@lsmn
2016-09-24T09:25:54.000000Z
字数 1255
阅读 3346
Consul
ACL
服务发现
9月14日,Hashicorp发布了其开源分布式服务发现和配置工具Consul的0.7版本。该版本号称是一个“非常重大的版本”,引入了键/值更新事务、跨数据中心ACL复制,并改进了其Raft和Gossip协议实现,优化了相应的计时方式。
9月14日,Hashicorp发布了其开源分布式服务发现和配置工具Consul的0.7版本。该版本号称是一个“非常重大的版本”,引入了键/值更新事务、跨数据中心复制ACL,并改进了其Raft和Gossip协议实现,优化了相应的计时方式。
Consul已经成为现代分布式应用程序和数据中心的重要组成部分。据Hashicorp介绍,“这个版本的重点是简化Consul集群操作,为未来版本不断地改善操作打下重要的基础。”变更日志列出了该版本带来的特性、改进和Bug修复,下面是其中一些最重要的变化。
原子键/值更新
新的/v1/txn端点可以在单个原子事务中处理Consul键/值配置数据存储上的多个更新。单个更新可以包含多达64个键/值操作及一系列可能的动作。除了一般的读取、设置和删除动作外,它还支持锁操作、检查和条件修改(检查-设置)。成组的更新被作为一个JSON数组传入。如果有任何操作没有成功,则整个事务都会回滚,结果和错误都通过一个数组返回。
多数据中心ACL复制
在多数据中心Consul配置中,新的ACL复制特性允许用户将整套的ACL从ACL数据中心同步到非授权的数据中心,防止网络分区。在0.7版本之前,非授权数据中心的ACL只是一份缓存,在WAN故障时可能会导致ACL不完整。
改进健壮性、性能和操作
更新后的Raft库改进了集群成员变化后的处理过程以及仲裁失败后的恢复过程。而且现在,默认的Raft计时据称在性能较低的服务器上更有效了。
通过一个名为Lifeguard特性扩展了Gossip协议,可以防止不能满足软实时性要求的退化节点“导致其他健康节点的serfHealth波动”。
为了重新分配查询负载,Consul代理会定期连接可用的Consul服务器。
Consul操作员可以使用consul operator
命令管理Raft配置,如查看Raft配置:
consul operator raft -list-peers
或者不停机手动删除对等节点中的过期服务器:
consul operator raft -remove-peer -address="127.0.0.1:8300"
Consul升级指南详细介绍了如何从特定的版本升级到0.7。由于不再支持Consul协议v1,所以新版本和0.3之前的版本是不兼容的。
在此次更新之前,Consul今年(3月16日)还增加了支持模板的预处理查询和一个官方Docker Consul镜像。
查看英文原文:Consul 0.7 Adds Atomic K/V Updates, ACL Replication and Improved Protocol Robustness