我正在使用 github.com/coreos/etcd/client 与 etcd 云进行通信,有时我收到 401 错误“请求索引中的事件已过时并已清除”,在服务器页面上有解释为什么会发生以及它是如何发生的得到解决。其实我想实现以下场景。
- 获取“key”及其修改后的索引
- 做一些工作
- 从修改后的索引开始观看“key”
这样我就可以确保在第 2 步中的所有更改也会收到。但是 Etcd 只保存前 N 个更改,有时我收到 401 错误。根据文档,我可以使用 Get key request 中的“X-Etcd-Index”+ 1 标头作为修改后的索引来观看。
curl 'http://127.0.0.1:2379/v2/keys/foo' -vv
< HTTP/1.1 200 OK
< Content-Type: application/json
< X-Etcd-Cluster-Id: f63cd37d2ff4f650
< X-Etcd-Index: 17245
< X-Raft-Index: 2107637
< X-Raft-Term: 360
< Date: Tue, 15 Dec 2015 09:02:20 GMT
< Content-Length: 791
< ...
但我不使用直接 http 调用,只使用 github.com/coreos/etcd/client。如何从获取密钥请求中获取(实际上是否可以使用 api)http 标头信息?