Etcd - 过时的索引。如何从客户端读取 "X-Etcd-Index"
Etcd - Outdated index. How to read "X-Etcd-Index" from client
我正在使用 github.com/coreos/etcd/client 与 etcd 云通信,有时我会收到 401 错误 "The event in requested index is outdated and cleared",在服务器页面上有解释为什么会发生以及如何发生可以解决。其实我想实现下面的场景
- 获取"key"及其修改后的索引
- 做点工作
- 从修改后的索引
开始在 "key" 上观看
这样我就可以确定第 2 步中的所有更改也会收到。但是 Etcd 只保存前 N 个更改,有时我会收到 401 错误。根据 docu 我可以使用来自 Get key 请求的 "X-Etcd-Index" + 1 header 作为修改后的索引来观看。
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 header 信息?
X-Etcd-Index
header对应Response.Index
字段
索引在响应字段中作为 "Index" 对象可用。请参阅此处的文档:https://godoc.org/github.com/coreos/etcd/client#Response
我正在使用 github.com/coreos/etcd/client 与 etcd 云通信,有时我会收到 401 错误 "The event in requested index is outdated and cleared",在服务器页面上有解释为什么会发生以及如何发生可以解决。其实我想实现下面的场景
- 获取"key"及其修改后的索引
- 做点工作
- 从修改后的索引 开始在 "key" 上观看
这样我就可以确定第 2 步中的所有更改也会收到。但是 Etcd 只保存前 N 个更改,有时我会收到 401 错误。根据 docu 我可以使用来自 Get key 请求的 "X-Etcd-Index" + 1 header 作为修改后的索引来观看。
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 header 信息?
X-Etcd-Index
header对应Response.Index
字段
索引在响应字段中作为 "Index" 对象可用。请参阅此处的文档:https://godoc.org/github.com/coreos/etcd/client#Response