|------------|---------------------------------|-----------------------------------------------------------------------------|----------------------------------------------------|
| | 参数名 | 默认值 | 详解 |
| 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-interval和election-timeout对集群稳定性至关重要。需根据实际网络延迟(RTT) 调整。例如,若节点间平均RTT为20毫秒,则heartbeat-interval可设为30毫秒,election-timeout设为300毫秒。 -
存储管理 :
quota-backend-bytes和auto-compaction-retention共同防止数据库无限增长。生产环境必须设置合理的值,并监控存储使用量。 -
安全 :生产环境务必启用TLS加密 (配置
client-transport-security和peer-transport-security)和用户认证(参考etcdctl auth命令),禁止使用未加密的HTTP。 -
版本差异 :注意
enable-v2等参数在不同etcd主版本中的默认值可能不同