rpcxio / rpcx-etcd

etcd plugin for rpcx
Apache License 2.0
30 stars 24 forks source link

KeepAlive ttl默认30s设置,导致clientv3.resetRecv不断被调用 #20

Closed amersons closed 1 year ago

amersons commented 2 years ago

1、KeepAlive ttl 是设置serverplugin.defaultTTL=30,不知这个30s设定依据是什么? 然后按照 clientv3.recvKeepAlive计算后,会每10s通过 stream.Send和stream.Recv来进行KeepAlive,但是etcd.3.5版本默认一个ReadTimeout 5s(这个默认我还没找到哪里设置)导致clientv3.resetRecv不断被调用。 2、EtcdV3RegisterPlugin.UpdateInterval设计是保证续期吗?如果metas数据过大是不是会出现大量流量浪费?关键是不是每个服务都需要metadata数据,这样是不是EtcdV3RegisterPlugin.UpdateInterval可以设置为0(设置为0会导致Stop一直卡死,因为p.done一直在等待数据)

smallnest commented 2 years ago
  1. etcd config可以设置Timeout. 30s在频率和及时性做一个平衡
  2. 是保持续期的。如果不需要meta可以优化一下. keepalive自动保持
amersons commented 2 years ago

etcd.3.5版本默认ReadTimeout 5s 这个设置在哪?

amersons commented 2 years ago

个人觉得使用keepalive自动保持就行,然后是否可以加一个ping 这样etcd 不会报timeout