etcd クラウドとの通信に github.com/coreos/etcd/client を使用しています。401 エラー「要求されたインデックスのイベントは古く、クリアされています」が表示されることがあります。解決されます。実際には、次のシナリオを実装したいと考えています。
- 「キー」とその変更されたインデックスを取得します
- 何か仕事をする
- 変更されたインデックスから「キー」の監視を開始
このようにして、2 ステップ中のすべての変更も確実に受信されます。しかし、Etcd は上位 N 個の変更のみを保存し、401 エラーが発生することがあります。ドキュメントによると、「X- Etcd -Index」+ Get keyリクエストからの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 のみを使用します。get key request から http ヘッダー情報を取得するにはどうすればよいですか (また、API を使用して実際に可能ですか)。