为什么80%的码农都做不了架构师?>>>
etcd 日志级别修改
在使用etcd集群的时候在续约租期的时候使用 KeepAlive()
的时候,会出现大量下面的warn 日志,导致整个日志没办法进行查看,所以需要自己手动去设置日志级别,将这个错误忽略掉。
l.lg.Warn("lease keepalive response queue is full; dropping response send",
zap.Int("queue-size", len(ch)),
zap.Int("queue-capacity", cap(ch)),
)
源码默认使用的是DefaultLogConfig
, 所以只需要在初始化客户端的时候修改这个配置就可以了
lcfg := DefaultLogConfig
if cfg.LogConfig != nil {
lcfg = *cfg.LogConfig
}
修改方式只需要将默认配置考过来修改Level为 zap.ErrorLevel
client, err := clientv3.New(clientv3.Config{
client, err := clientv3.New(clientv3.Config{
Endpoints: []string{"127.0.0.1:2379"},
DialTimeout: 5 * time.Second,
LogConfig: &zap.Config{
Level: zap.NewAtomicLevelAt(zap.ErrorLevel),
Development: false,
Sampling: &zap.SamplingConfig{
Initial: 100,
Thereafter: 100,
},
Encoding: "json",
EncoderConfig: zap.NewProductionEncoderConfig(),
// Use "/dev/null" to discard all
OutputPaths: []string{"stderr"},
ErrorOutputPaths: []string{"stderr"},
},
})
使用租约代码
resp, err := client.Grant(context.TODO(), 5)
if err != nil {
fmt.Println(err)
}
// the key 'foo' will be kept forever
ch, kaerr := client.KeepAlive(context.TODO(), resp.ID)
if kaerr != nil {
fmt.Println(kaerr)
}