• 云原生工程师
    2021-02-24
    分析透彻,还有压测数据,有两个收获,鉴权接口之慢,线性读性能随写请求下降之快,请问一下,增加节点能提升线性读性能吗,求压测数据,谢谢老师

    作者回复: 感谢认可,非常好的问题,从原理上简单分析来看,若3个节点增大到5个节点,写请求至少要同步到3个节点,性能会略微下降,读请求的性能,主要是线性读涉及到与Leader交互,若写请求QPS非常小,Leader还未出现瓶颈的情况下,我认为是可以适当提升线性读性能的。 我简单压测了以下,也验证结果符合预期。 下面是3个节点的压测数据(写QPS为10): Summary: Total: 2.7759 secs. Slowest: 0.2266 secs. Fastest: 0.0010 secs. Average: 0.0092 secs. Stddev: 0.0042 secs. Requests/sec: 108072.0685 下面是5个节点的测试结果,写QPS同样5. Summary: Total: 0.7235 secs. Slowest: 0.0530 secs. Fastest: 0.0009 secs. Average: 0.0070 secs. Stddev: 0.0048 secs. Requests/sec: 138215.9303 写QPS为5的情况下,非SSD磁盘集群,3个节点线性读性能为108072.0685/s, 5个节点线性读性能为138215.9303/s。

    共 4 条评论
    8
  • 写点啥呢
    2021-02-24
    请问唐老师,能否详细介绍证书验证机制与密码验证机制的不同之处,为什么它相比密码验证能够提升性能并避免token复用问题?(我理解证书验证基于RSA非对阵加密算法,成本也高)。谢谢老师

    作者回复: 证书认证它不需要调用Authenticate接口,这个接口专门是用来校验用户名密码用的。token机制也是为了优化密码认证性能,避免频繁调用Authenticate接口而设计出来的,因此它也跟证书认证没有关系。 一般使用证书认证,都是长连接,在HTTPS连接建立时会有一定的开销,但是后续请求都不需要发起任何昂贵的认证操作,客户端证书的CN名字就是请求的用户名。 建议你详细看看05鉴权篇。

    
    7
  • jeffery
    2021-02-25
    图文并茂形象生动!每章都很👍!引入 cache 实现缓存 expensive read request 的结果后.怎么维护缓存数据与 etcd 保持强一致性.cache是指内核cache还是别的!突然宕机会不会丢数据.谢谢老师

    作者回复: cache是指应用层的,比如kubernetes中的informer机制,你可以参考下client-go的实现,https://github.com/kubernetes/client-go/tree/master/tools/cache,宕机、重启后需要重新发起读请求向etcd查询最新的数据来填充cache, 随后通过watch机制监听后续数据变化,有新的key-value变化就更新cache

    共 2 条评论
    6
  • 孔宣
    2023-04-06 来自北京
    唐老师,kstone现在还在维护吗?加了微信没人回复。想在生产上使用,想咨询几个问题
    
    
  • 牛学真
    2022-03-25
    收获很大
    
    
  • Zhenng
    2022-03-14
    老师,我在测etcd集群读性能的时候线性读的性能可以达到14w/s,但是串行读的性能跟线性读的性能相同,也是14w/s,这是为什么?我的etcd版本是3.5.2
    
    
  • Simon😜
    2021-04-24
    老师,多租场景下(不同业务做数据隔离,假设100个业务),使用证书认证,假设10万个客户端连接,线性读的qps能达到多少呢?
    
    