作者回复: 谢谢,新年快乐,祝牛年升职加薪
作者回复: 感谢你的提问,平时有使用过etcd吗? 比如基本的etcdctl工具,了解下常见的命令,下载etcd二进制文件,本地启动一个etcd集群。 基础篇每讲都有不少的案例,建议你实际动手执行下,很多东西你亲自去体验下,就有不一样的收获。 专栏面向的对象包括初学者、有一定的基础的、有比较丰富经验的同学,每讲本身已经非常长了,受限于篇幅,因此很多网上一搜索的就能找到的资源,比如etcdctl使用、etcd集群搭建我就没介绍了,不过在后面专栏结束后,我考虑增加个入门篇,更加通俗易懂的,帮助没实际使用etcd的同学们快速上手。 对kubernetes比较了解可以看看19和20会不会让你感觉更加亲切点。 最后,每讲有什么疑问,可直接留言提问哈,没事的,不用担心问题是否简单,说不定其他入门的同学也能遇到。 最近专栏还在定时更新阶段,非常忙,可能评论回复没那么快,定时更新结束后,我会定时抽空回答大家问题哈。
作者回复: 嗯,defrag期间会持有boltdb事务锁导致读写超时,一般情况下不需要defrag的,只有当未配置compact策略或配置的策略非常不合理、以及线上突发大规模写入等场景下导致db文件非常大的时候才需要执行defrag。
作者回复: 有趣的问题,各个节点都会发起compact请求,etcd会记录已压缩的最大版本号,如果其他节点发起的compact版本号小于它,就直接返回ErrCompacted了。
作者回复: 感谢支持,最近项目和家庭事情比较多,思考题答案我将尽快在周末抽空补充好(预计9月份)
作者回复: 嗯,etcd有记录已压缩最大的版本号,不会重复压缩。
作者回复: 你好,你应该是指压缩吧,默认没开启历史数据压缩功能,一般情况下只要你不保留太久(比如6h以上),写入不要太频繁,db大小会保持稳定的。碎片整理是指defrag命令,它的核心原理是遍历老db数据,重新写入到一个新的db文件,使其更紧凑,但这个过程会影响etcd可用性。一般生产环境下不需要执行defrag命令,除非写入大量数据后,又删除了数据,db文件特别大。
作者回复: 都可以的哈