如果给定一个 consul KV key a/key
,其中有多个代理服务器实例正在运行,如果:
向创建密钥端点发出两个请求 A(将值设置为val-a
)和 B(将值设置为),而不使用参数或更新相同的密钥:val-b
cas
acquire
a/key
- 如果 A 和 B 并行生成,密钥的值是否会损坏?
- 或者如果 A 比 B 稍微早一点,最终值仍然可以变为
val-a
吗?
如果 Consul 同时收到两个写请求,数据不会损坏。写入请求将由领导者串行处理,因此 的值a/key
将变为val-a
或val-b
,以最后处理的为准。
您可以在 Consul 的共识协议文档中找到有关 Consul 如何写入数据的详细信息。