专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Kubernetes实战etcd详细介绍

分布式,可靠的,kv分布式系统

Raft算法

  • 从多个节点选出leader,leader负责数据的同步和分发。

quorum=(n+1)/2

  • 3个节点容忍1个故障
  • 5个节点容忍2个故障

API

  • PUT(key,value)/Delete(key)
  • Get(key)/Get(keyFrom,keyEnd) key的范围
  • Watch(key/keyPrefix)
  • Transactions(if/then/else ops).commit() 满足条件,执行操纵
  • Leases:Grant/Revoke/KeepAlive

etcd的数据版本号机制

  • term:全局单调递增 (整个集群leader的任期,leader进行切换,term加1)
  • revision: 全局单调递增 (代表的kv修改一次,revision加1)
  • KeyValue:
    • create_revision:创建的次数
    • mod_revision:修改的次数
    • version:此次key修改的次数

一个数据有多个版本,通过定期Compaction来清理历史数据

lease(租约)

性能优化

Ratf层

  • 网络IO
  • 节点之间的RTT/带宽
  • 磁盘IO 写入延迟

Storage

  • 磁盘IO fdatasync延迟
  • 索引层所的block
  • boltdb Tx的锁
  • boltdb本身的性能

其他

  • 内核参数
  • grpc api层的延迟

服务端性能优化 -硬件

  • 升级CPU/memory
  • 选取优秀的ssd
  • 网络带宽优先级
  • 独占部署

服务端性能优化 – 软件

  • 没存索引层:提升etcd内存索引性能,优化内部锁的使用减少等待时间
  • lsase规模使用:优化lease revoke过期失效的算法,解决了lease规模性的问题
  • 后端boltdb使用优化:端酒batch size limit /interval,根据不同的硬件和工作负载配置(以前是固守保守值)
  • 完全并发读,优化调用boltdb tx读写锁使用,提升读性能
  • 基于segregated hashmap的etcd内部存储freelist分配回收算法

客户端性能优化

  • put 避免大value,精简再精简
  • 避免创建频繁变化的key/value
  • 避免创建按大量lease,尽量选择复用

文章永久链接:https://tech.souyunku.com/44313

未经允许不得转载:搜云库技术团队 » Kubernetes实战etcd详细介绍

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们