1. Member 成员配置

1.1. --name

  --name 'default'
    Human-readable name for this member.
  • 描述:人易理解的成员的名称
  • 默认: "default"
  • 环境变量: ETCD_NAME

解释:

该参数是 etcd 集群成员当前节点的名称,该名称便于人来理解。比如常用的名称: etcd1Hostnamemachine-id ,默认情况下如果没有指定时为 default.

--initial-cluster 标记中,默认节点的配置项为 default=http://localhost:2380 ,其中 default 就是 name 的名称,而且该名称在集群中唯一。如果使用固定节点的静态部署方式时,这需要匹配在标记中使用的key。当使用动态发现时,每个成员也必须有唯一名字。

1.2. --data-dir

  --data-dir '${name}.etcd'
    Path to the data directory.
  • 描述:到数据目录的路径.
  • 默认: "${name}.etcd"
  • 环境变量: ETCD_DATA_DIR

解释:

该参数是指定 etcd 的数据保存在磁盘上的路径,注意这里是已经通过集群确定了的数据,该数据是整个集群的定期快照数据,便于在故障恢复时使用。

1.3. --wal-dir

  --wal-dir ''
    Path to the dedicated wal directory.
  • 描述: 指定 wal 的存储目录
  • 默认: ''
  • 环境变量: ETCD_WAL_DIR

解释:

默认时是相对 --data-dir 的路径,如果不单独指定 wal 时会和数据目录一致。如果这个标记被单独设置,etcd 将写 WAL 文件到 wal-dir 而不是 data-dir ,这容许使用专门的硬盘来存放 wal 文件以提升 etcd 性能。

该参数指定的路径所在的磁盘性能决定了 etcd 整体的性能。etcd 在写入数据时,需要集群中超过一半的节点都将新的数据写入 wal 文件后才算数据写入成功,因此如果 wal 数据文件路径指定的磁盘性能较差,会导致 etcd 整体的性能降低。

1.4. --snapshot-count

  --snapshot-count '100000'
    Number of committed transactions to trigger a snapshot to disk.
  • 描述:触发快照到硬盘的已提交事务的数量.
  • 默认: "10000"
  • 环境变量: ETCD_SNAPSHOT_COUNT

解释:

etcd 的数据写入时时会先写入到 wal 文件(--wal-dir),经过过半的节点同步到数据后才算一次事物(一条数据)写入成功,当达到一定数量时,需要同步到磁盘中(--data-dir)以防止异常情况。

该参数的大小配置需要根据当前节点的性能、磁盘性能、节点负载、节点机器的稳定性以及其他多方面综合评估,合理的值能够更好的发挥 etcd 的性能。

1.5. --heartbeat-interval

  --heartbeat-interval '100'
    Time (in milliseconds) of a heartbeat interval.
  • 描述:心跳间隔时间 (单位:毫秒).
  • 默认: "100"
  • 环境变量: ETCD_HEARTBEAT_INTERVAL

解释:

该参数指定 etcd 集群心跳的时间间隔。一般集群的 leader 会定期发送宣告给 followers,通知集群中其他节点自己是 leader 角色,该值就是 leader 宣告的时间间隔。如果其他成员在这个心跳间隔内未收到 leader 的宣告,会判断 leader 已经异常失联了,将发起新的一轮选举。

该值是心跳间隔,间隔太低会消耗较多的网络资源,间隔太大会导致集群 leader 异常时重新选主间隔变长,进而故障不可用时间变长。

1.6. --election-timeout

  --election-timeout '1000'
    Time (in milliseconds) for an election to timeout. See tuning documentation for details.
  • 选举的超时时间(单位 毫秒)
  • 默认: "1000"
  • 环境变量: ETCD_ELECTION_TIMEOUT

解释:

etcd 选举 leader 会有一个投票阶段,有一定的情况是该次投票没有选举出新的 Leader。这时需要重新发起一轮选举,该参数就是指定重新投票的超时时间。

1.7. --initial-election-tick-advance

  --initial-election-tick-advance 'true'
    Whether to fast-forward initial election ticks on boot for faster election.
  • 描述:
  • 默认: true
  • 环境变量: ETCD_INITIAL_ELECTION_TICK_ADVANCE

解释:

默认情况下,重新加入的追随者的快进选举会标记加速其初始集群引导程序。例如,开始选举前,开始的追随者节点仅等候 200ms 而非一秒的全选举超时。

理想情况下,在 200ms 内,它接收到了指挥者的检测信号,并立即作为跟随者加入集群。然而,如果出现网络分区,检测信号可能终止,触发指挥选举。来自分区节点的投票请求非常具有破坏性。如果包含更高的 Raft 条件,目前的指挥者不得不降级。

initial-election-tick-advance 设为 FALSE,重新加入的节点有更好的机会在破坏集群前接收指挥者检测信号。

1.8. --listen-peer-urls

  --listen-peer-urls 'http://localhost:2380'
    List of URLs to listen on for peer traffic.
  • 描述:列出用于建立 peer 监听的 URLs 列表
  • 默认: "http://localhost:2380"
  • 环境变量: ETCD_LISTEN_PEER_URLS

解释:

用于监听集群成员通讯的 URLs 列表。这个标记告诉 etcd 在特定的 scheme://IP:port 组合上从它的伙伴接收进来的请求。

scheme 可是 http 或者 https。如果 IP 被指定为 0.0.0.0, etcd 在所有接口上监听给定端口。如果给定 IP 地址和端口,etcd 将监听在给定端口和接口上。多个URL可以用来指定多个地址和端口来监听。etcd 将从任何列出来的地址和端口上应答请求。

这里需要注意 peer 的端口是集群间通信的端口,和客户端访问 etcd 集群的端口不同。

该参数是当前节点的配置。

1.9. --listen-client-urls

  --listen-client-urls 'http://localhost:2379'
    List of URLs to listen on for client traffic.
  • 描述:客户端访问监听的 URLs 列表
  • 默认: "http://localhost:2379"
  • 环境变量: ETCD_LISTEN_CLIENT_URLS

解释:

用于监听客户端通讯的 URL 列表。这个标记告诉 etcd 在特定的 scheme://IP:port 组合上从客户端接收进来的请求。scheme 可是 http 或者 https。如果IP被指定为 0.0.0.0, etcd 在所有接口上监听给定端口。如果给定IP地址和端口,etcd 将监听在给定端口和接口上。多个 URL 可以用来指定多个地址和端口来监听。etcd 将从任何列出来的地址和端口上应答请求。

这里是指定客户端访问 etcd 集群的 URLs 列表(scheme://IP:port), 和集群间通信的 peer 端口不同。

该参数是对于当前节点的配置项,是整个集群 endpoints 中的一项。

1.10. --max-snapshots

  --max-snapshots '5'
    Maximum number of snapshot files to retain (0 is unlimited).
  • 描述:保持的快照文件的最大数量 (0 表示不限制)
  • 默认: 5
  • 环境变量: ETCD_MAX_SNAPSHOTS

解释:

etcd 保存的数据(--data-dir)快照文件保留的数量。

对于 windows 用户默认不限制,而且推荐手工降低到5(或者某些安全偏好)。

1.11. --max-wals

  --max-wals '5'
    Maximum number of wal files to retain (0 is unlimited).
  • 描述:保持的 wal 文件的最大数量 (0 表示不限制)
  • 默认: 5
  • 环境变量: ETCD_MAX_WALS

etcd 的 wal 文件 (--wal-dir) 数据文件保留的数量。

对于windows用户默认不限制,而且推荐手工降低到5(或者某些安全偏好)。

1.12. --quota-backend-bytes

  --quota-backend-bytes '0'
    Raise alarms when backend size exceeds the given quota (0 defaults to low space quota).
  • 描述:当后端大小超过给定配额时(0默认为低空间配额),引发警报。
  • 默认值:0
  • 环境变量:ETCD_QUOTA_BACKEND_BYTES

1.13. --backend-batch-interval

  --backend-batch-interval ''
    BackendBatchInterval is the maximum time before commit the backend transaction.
  • 描述:提交后端事物之前的最长时间
  • 默认值:default: 0
  • 环境变量: ETCD_BACKEND_BATCH_INTERVAL

1.14. --backend-batch-limit

  --backend-batch-limit '0'
    BackendBatchLimit is the maximum operations before commit the backend transaction.
  • 描述:提交后端实物之前的最大操作
  • 默认值: 0
  • 环境变量: ETCD_BACKEND_BATCH_LIMIT

1.15. --max-txn-ops

  --max-txn-ops '128'
    Maximum number of operations permitted in a transaction.
  • 描述:事务中允许的最大操作数。
  • 默认值:128
  • 环境变量:ETCD_MAX_TXN_OPS

1.16. --max-request-bytes

  --max-request-bytes '1572864'
    Maximum client request size in bytes the server will accept.
  • 含义:服务器将接受的最大客户端请求大小(字节)。
  • 默认值:1572864
  • 环境变量:ETCD_MAX_REQUEST_BYTES

1.17. --grpc-keepalive-min-time

  --grpc-keepalive-min-time '5s'
    Minimum duration interval that a client should wait before pinging server.
  • 描述:客户端在 ping 服务器之前应等待的最短持续时间间隔。
  • 默认值:5s
  • 环境变量:ETCD_GRPC_KEEPALIVE_MIN_TIME

解释:

在 GRPC 连接 etcd 集群时才能生效。

1.18. --grpc-keepalive-interval

  --grpc-keepalive-interval '2h'
    Frequency duration of server-to-client ping to check if a connection is alive (0 to disable).
  • 描述:服务器到客户端 ping 的频率持续时间,以检查连接是否处于活动状态(0表示禁用)。
  • 默认值:2h
  • 环境变量:ETCD_GRPC_KEEPALIVE_INTERVAL

解释:

在 GRPC 连接 etcd 集群时才能生效。

1.19. --grpc-keepalive-timeout

  --grpc-keepalive-timeout '20s'
    Additional duration of wait before closing a non-responsive connection (0 to disable).
  • 描述:关闭非响应连接之前的额外持续等待时间(0表示禁用)。
  • 默认值:20s
  • 环境变量:ETCD_GRPC_KEEPALIVE_TIMEOUT

解释:

在 GRPC 连接 etcd 集群时才能生效。

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2023-10-26 17:23:11

results matching ""

    No results matching ""