Когда я использую клиент etcd go.etcd.io/etcd/clientv3
для просмотра события etcd, я обнаружил, что получу много ответов с пустыми событиями. Журнал ниже:
ime = "2019-10-27T20: 39: 13 + 08: 00 "level = debug msg =" Ответ наблюдения ETCD: {Header: {ClusterId: 0 MemberId: 0 Редакция: 0 RaftTerm: 0} События: [] CompactRevision: 0 Отменено: false Создано: falsecloseErr: cancelReason:} "file =" backend.go: 135 "time =" 2019-10-27T20: 39: 13 + 08: 00 "level = debug msg =" Ответ наблюдения ETCD: {Header: {ClusterId: 0 MemberId: 0 Редакция: 0 RaftTerm: 0} События: [] CompactRevision: 0 Отменено: false Создано: false closeErr: cancelReason:} "file =" backend.go: 135 "time =" 2019-10-27T20: 39: 13+08:00 "level = debug msg =" Ответ наблюдения ETCD: {Header: {ClusterId: 0 MemberId: 0 Редакция: 0 RaftTerm: 0} События: [] CompactRevision: 0 Отменено: false Создано: false closeErr: cancelReason:} "file = "backend.go: 135" time = "2019-10-27T20: 39: 13 + 08: 00" level = debug msg = "Ответ наблюдения ETCD: {Header: {ClusterId: 0 MemberId: 0 Редакция: 0 RaftTerm: 0} События: [] CompactRevision: 0 Отменено: false Создано: false closeErr: cancelReason:} "file =" backend.go: 135 "time =" 2019-10-27T20: 39: 13 + 08: 00 "level = debug msg =" Ответ ETCD watch: {Header: {ClusterId: 0 MemberId: 0 Редакция: 0 RaftTerm: 0} События: [] CompactRevision: 0 Отменено: false Создано: false closeErr: cancelReason:} "file =" backend.go: 135 "time =" 2019-10-27T20: 39: 13 + 08: 00 "level = debug msg =" Ответ наблюдения ETCD: {Header: {ClusterId: 0 MemberId: 0 Редакция: 0 RaftTerm: 0} События: [] CompactRevision: 0 Отменено: falseСоздано: false closeErr: cancelReason:} "file =" backend.go: 135 "time =" 2019-10-27T20: 39: 13 + 08: 00 "level = debug msg =" Ответ просмотра ETCD: {Header: {ClusterId: 0 MemberId: 0 Редакция: 0 RaftTerm: 0} События: [] CompactRevision: 0 Отменено: false Создано: false closeErr: cancelReason:} "file =" backend.go: 135 "time =" 2019-10-27T20: 39: 13 + 08: 00 "level = debug msg =" Ответ отслеживания ETCD: {Header: {ClusterId: 0 MemberId: 0 Редакция: 0 RaftTerm: 0} События: [] CompactRevision: 0 Отменено: false Создано: false closeErr: cancelReason:} "file =" backend.go: 135 "
подсказки: backend.go: 135 is: fmt.Printf ("% v ", соответственно), ответ получен от watchChan
func (e *EtcdClient) watchWithOptions(ctx context.Context, key string, opts ...clientv3.OpOption) clientv3.WatchChan {
if e.client == nil {
return nil
}
key = e.withPrefix(key)
return e.client.Watch(ctx, key, opts...)
}
// WatchPrefix watch the kvs change with same prefix
func (e *EtcdClient) WatchPrefix(ctx context.Context, prefix string) clientv3.WatchChan {
return e.watchWithOptions(ctx, prefix, clientv3.WithPrefix(), clientv3.WithPrevKV())
}
iисключены события put, delete, но фактический вывод недопустим пустые события