Etcd服务端参数详解

|------------|---------------------------------|-----------------------------------------------------------------------------|----------------------------------------------------|
| | 参数名 | 默认值 | 详解 |
| member参数 | --name | 'default' | 节点的可读名称,在集群中必须唯一 |
| member参数 | --data-dir | '${name}.etcd' | 数据存储目录路径 |
| member参数 | --wal-dir | '' | 专用WAL日志目录路径,默认在data-dir内 |
| member参数 | --snapshot-count | 100000 | 触发快照到磁盘的已提交事务数量 |
| member参数 | --heartbeat-interval | 100 | 心跳间隔时间(毫秒),leader通知followers的频率 |
| member参数 | --election-timeout | 1000 | 选举超时时间(毫秒),follower多久没收到心跳会触发选举 |
| member参数 | --initial-election-tick-advance | TRUE | 启动时是否快速推进初始选举计时以加快选举速度 |
| member参数 | --listen-peer-urls | 'http://localhost:2380' | 监听集群节点间通信的URL列表 |
| member参数 | --listen-client-urls | 'http://localhost:2379' | 监听客户端请求的URL列表(gRPC和HTTP) |
| member参数 | --listen-client-http-urls | '' | 仅用于HTTP客户端流量的URL列表,启用后会从listen-client-urls分离HTTP服务 |
| member参数 | --max-snapshots | 5 | 保留的最大快照文件数(0为无限制) |
| member参数 | --max-wals | 5 | 保留的最大WAL文件数(0为无限制) |
| member参数 | --cors | '' | CORS跨域资源共享的域名白名单,逗号分隔 |
| member参数 | --quota-backend-bytes | 0 | 后端数据库大小配额,超过则触发警报(0使用默认低空间配额) |
| member参数 | --max-txn-ops | 128 | 每个事务允许的最大操作数 |
| member参数 | --max-request-bytes | 1572864 (1.5MB) | 服务器接受的最大客户端请求字节数 |
| member参数 | --grpc-keepalive-min-time | 5s | 客户端发送ping前需等待的最短时间间隔 |
| member参数 | --grpc-keepalive-interval | 2h | 服务器向客户端发送ping检查连接存活频率(0禁用) |
| member参数 | --grpc-keepalive-timeout | 20s | 关闭无响应连接前的额外等待时间(0禁用) |
| member参数 | --socket-reuse-port | FALSE | 允许监听器设置SO_REUSEPORT选项,支持端口复用 |
| member参数 | --socket-reuse-address | FALSE | 允许监听器设置SO_REUSEADDR选项,支持TIME_WAIT地址重用 |
| cluster参数 | --initial-advertise-peer-urls | 'http://localhost:2380' | 向集群其他成员通告的本节点peer URL列表 |
| cluster参数 | --advertise-client-urls | 'http://localhost:2379' | 向客户端通告的访问地址列表 |
| cluster参数 | --discovery | '' | 用于引导集群的发现服务URL |
| cluster参数 | --discovery-fallback | 'proxy' | 发现服务失败时的行为('exit'或'proxy') |
| cluster参数 | --discovery-proxy | '' | 访问发现服务的HTTP代理 |
| cluster参数 | --discovery-srv | '' | 用于引导初始集群的DNS SRV域名 |
| cluster参数 | --initial-cluster | '' | 初始集群配置,格式:name1=url1,name2=url2... |
| cluster参数 | --initial-cluster-token | 'etcd-cluster' | 集群唯一标识符,用于区分不同集群 |
| cluster参数 | --initial-cluster-state | 'new' | 初始集群状态('new'新建或'existing'加入已有集群) |
| cluster参数 | --strict-reconfig-check | FALSE | 拒绝可能导致仲裁丢失的重新配置请求 |
| 客户端传参安全 | --client-cert-auth | FALSE | 启用客户端证书认证 |
| 客户端传参安全 | --trusted-ca-file | '' | 验证客户端证书的CA证书路径 |
| 客户端传参安全 | --auto-tls | FALSE | 使用自生成证书 |
| pee节点参数安全 | --peer-client-cert-auth | FALSE | 启用peer节点客户端证书认证 |
| pee节点参数安全 | --peer-trusted-ca-file | '' | 验证peer节点证书的CA证书路径 |
| pee节点参数安全 | --peer-auto-tls | FALSE | 为peer节点使用自生成证书 |
| pee节点参数安全 | --peer-allowed-cn | '' | 允许的Common Name进行peer认证 |
| pee节点参数安全 | --peer-allowed-hostname | '' | 允许的TLS主机名进行peer认证 |
| 通用TLS参数 | --cert-file | '' | 服务器TLS证书文件路径 |
| 通用TLS参数 | --key-file | '' | 服务器TLS私钥文件路径 |
| 通用TLS参数 | --peer-cert-file | '' | Peer节点TLS证书文件路径 |
| 通用TLS参数 | --peer-key-file | '' | Peer节点TLS私钥文件路径 |
| 通用TLS参数 | --self-signed-cert-validity | 1 | 自签名证书有效期(年) |
| 通用TLS参数 | --cipher-suites | [] | 允许的TLS密码套件列表 |
| 通用TLS参数 | --tls-min-version | 'TLS1.2' | 最低TLS协议版本 |
| 通用TLS参数 | --tls-max-version | 'TLS1.3' | 最高TLS协议版本 |
| 性能调优参数 | --backend-bbolt-freelist-type | 'map' | Boltdb后端使用的freelist类型('array'或'map') |
| 性能调优参数 | --backend-batch-interval | '' | 提交后端事务前的最大时间间隔 |
| 性能调优参数 | --backend-batch-limit | 0 | 提交后端事务前的最大操作数 |
| 日志和调试参数 | --log-level | 'info' | 日志级别:debug, info, warn, error, panic, fatal |
| 日志和调试参数 | --logger | 'zap' | 日志记录器实现 |
| 日志和调试参数 | --log-outputs | [stderr] | 日志输出目标,如stdout, stderr或文件路径 |
| 日志和调试参数 | --enable-pprof | FALSE | 通过HTTP服务器启用运行时profiling数据 |
| 代理模式参数 | --proxy | 'off' | 代理模式('on', 'readonly', 'off') |
| 代理模式参数 | --proxy-failure-wait | 5000ms | 端点保持失败状态的时间 |
| 代理模式参数 | --proxy-refresh-interval | 30000ms | 端点刷新间隔时间 |
| 代理模式参数 | --proxy-dial-timeout | 1000ms | 连接超时时间 |
| 代理模式参数 | --proxy-write-timeout | 5000ms | 写操作超时时间 |
| 代理模式参数 | --proxy-read-timeout | 0ms | 读操作超时时间(0为无限制) |
| 自动维护参数 | --auto-compaction-mode | 'periodic' | 自动压缩模式:'periodic'或'revision' |
| 自动维护参数 | --auto-compaction-retention | '0' | 压缩保留策略(小时或revision数) |
| 自动维护参数 | --force-new-cluster | FALSE | 强制创建新的单成员集群(危险操 作) |

  • 配置方式 :参数可通过命令行标志环境变量 (格式如 ETCD_NAME)或 YAML配置文件etcd --config-file)三种方式设置,后两者更易管理。

  • 性能关键参数heartbeat-intervalelection-timeout对集群稳定性至关重要。需根据实际网络延迟(RTT) 调整。例如,若节点间平均RTT为20毫秒,则heartbeat-interval可设为30毫秒,election-timeout设为300毫秒。

  • 存储管理quota-backend-bytesauto-compaction-retention共同防止数据库无限增长。生产环境必须设置合理的值,并监控存储使用量。

  • 安全 :生产环境务必启用TLS加密 (配置client-transport-securitypeer-transport-security)和用户认证(参考etcdctl auth命令),禁止使用未加密的HTTP。

  • 版本差异 :注意 enable-v2 等参数在不同etcd主版本中的默认值可能不同

相关推荐
数据知道1 分钟前
一文掌握 MongoDB 存储引擎 WiredTiger 的原理
数据库·mongodb·数据库架构
Full Stack Developme5 分钟前
Mycat 2 实现 MySQL 读写分离,并且实现 主从同步
android·数据库·mysql
我是人✓9 分钟前
Spring IOC入门
java·数据库·spring
Hello.Reader10 分钟前
PyFlink DataStream 程序骨架、常用 Source/Sink、状态(State)、与 Table/SQL 互转一篇搞定
数据库·sql·linq
三不原则17 分钟前
故障案例:模型推理响应慢,排查 Redis 缓存集群问题
数据库·redis·缓存
alonewolf_9922 分钟前
MySQL Explain详解与索引优化实战
数据库·mysql·adb
それども27 分钟前
MySQL 查询索引最左前缀原则,如果是(a,b)的联合索引,WHERE b = ? AND a = ?会走索引吗
数据库·mysql
それども28 分钟前
MySQL EXPLAIN Impossible WHERE noticed after reading const tables
数据库·mysql
a程序小傲31 分钟前
得物Java面试被问:边缘计算的数据同步和计算卸载
java·开发语言·数据库·后端·面试·golang·边缘计算
Cx330❀33 分钟前
脉脉2026实测:【AI创作者xAMA】平台核心功能解析
数据库·人工智能·脉脉