猿问

Etcd - 过时的索引。如何从客户端读取“X-Etcd-Index”

我正在使用 github.com/coreos/etcd/client 与 etcd 云通信,有时我会收到 401 错误“请求的索引中的事件已过时并已清除”,在服务器页面上有一个解释它发生的原因以及它是如何发生的得到解决。其实我想实现以下场景。

  1. 获取“key”及其修改后的索引

  2. 做一些工作

  3. 从修改后的索引开始观察“键”

通过这种方式,我可以确保也将收到 2 步期间的所有更改。但是 Etcd 只保存前 N 个更改,有时我会收到 401 错误。根据文档,我可以使用“X-Etcd-Index”+ 1 来自 Get key 请求的标头作为修改后的索引来观看。

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。如何从 get key request 获取(实际上是否可以使用 api)http 标头信息?


元芳怎么了
浏览 148回答 2
2回答

米脂

所述X-Etcd-Index报头对应于Response.Index字段。

繁星coding

索引在响应字段中可用作“索引”对象。请参阅此处的文档:https&nbsp;:&nbsp;//godoc.org/github.com/coreos/etcd/client#Response
随时随地看视频慕课网APP

相关分类

Go
我要回答