когда я использую клиент etcd go.etcd.io/etcd/clientv3
для просмотра события etcd, я обнаружил, что получу много ответов с пустыми событиями. Журнал ниже:
ime="2019-10-27T20:39:13+08:00" level=debug msg="Отчет просмотра ETCD: {Header:{ClusterId:0 MemberId:0 Revision:0 RaftTerm:0} События:[] CompactRevision: 0 Canceled:false Created:false closeErr: cancelReason:}" file="backend.go:135" time="2019-10-27T20:39:13+08:00" level=debug msg="ETCD watch response: { Заголовок: {ClusterId:0 MemberId:0 Revision:0 RaftTerm:0} События:[] CompactRevision:0 Canceled:false Created:false closeErr: cancelReason:}" file="backend.go:135" time="2019-10 -27T20:39:13+08:00" level=debug msg="ETCD watch response: {Header:{ClusterId:0 MemberId:0 Revision:0 RaftTerm:0} Events:[] CompactRevision:0 Canceled:false Created: false closeErr: cancelReason:}" file="backend.go:135" time="2019-10-27T20:39:13+08:00" level=debug msg="ETCD watch response: {Header:{ClusterId:0 MemberId:0 Revision:0 RaftTerm:0} Events:[] CompactRevision:0 Canceled:false Created:false closeErr: cancelReason:}" file="backend.go:135" time="2019-10-27T20:39:13 +08:00" уровень=сообщение об отладке= «Ответ просмотра ETCD: {Header: {ClusterId:0 MemberId:0 Revision:0 RaftTerm:0} Events:[] CompactRevision:0 Canceled:false Created:false closeErr: cancelReason:}» file="backend.go:135" time="2019-10-27T20:39:13+08:00" level=debug msg="Отчет просмотра ETCD: {Header:{ClusterId:0 MemberId:0 Revision:0 RaftTerm:0} События:[] CompactRevision: 0 Canceled:false Created:false closeErr: cancelReason:}" file="backend.go:135" time="2019-10-27T20:39:13+08:00" level=debug msg="ETCD watch response: { Заголовок: {ClusterId:0 MemberId:0 Revision:0 RaftTerm:0} События:[] CompactRevision:0 Canceled:false Created:false closeErr: cancelReason:}" file="backend.go:135" time="2019-10 -27T20:39:13+08:00" level=debug msg="ETCD watch response: {Header:{ClusterId:0 MemberId:0 Revision:0 RaftTerm:0} Events:[] CompactRevision:0 Canceled:false Created: 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())
}
я исключил события размещения, удаления, но фактический вывод - недопустимые пустые события