> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# insert_keeper_* 会话设置

> ClickHouse 在 insert_keeper_* 分组中的会话设置。

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>类型</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>默认值</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          无需重启即可更改
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

这些设置可在 [system.settings](/docs/zh/reference/system-tables/settings) 中查看，并由 [源代码](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp) 自动生成。

<div id="insert_keeper_fault_injection_probability">
  ## insert\_keeper\_fault\_injection\_probability
</div>

<SettingsInfoBlock type="Float" default_value="0" />

插入期间 Keeper 请求发生故障的大致概率。有效值范围为 \[0.0f, 1.0f]

<div id="insert_keeper_fault_injection_seed">
  ## insert\_keeper\_fault\_injection\_seed
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

0 - 使用随机种子，否则使用该设置的值

<div id="insert_keeper_max_retries">
  ## insert\_keeper\_max\_retries
</div>

<SettingsInfoBlock type="UInt64" default_value="20" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "20"},{"label": "在向 replicated MergeTree 执行 INSERT 时启用与 Keeper 的重新连接，提高可靠性"}]}]} />

该设置用于指定在向 replicated MergeTree 执行 INSERT 期间，ClickHouse Keeper (或 ZooKeeper) 请求的最大重试次数。只有因网络错误、Keeper 会话超时或请求超时而失败的 Keeper 请求才会被重试。

可能的值：

* 正整数。
* 0 — 禁用重试

Keeper 请求会在经过一段超时时间后重试。该超时时间由以下设置控制：`insert_keeper_retry_initial_backoff_ms`、`insert_keeper_retry_max_backoff_ms`。
第一次重试会在 `insert_keeper_retry_initial_backoff_ms` 指定的超时时间后进行。后续超时时间将按如下方式计算：

```
timeout = min(insert_keeper_retry_max_backoff_ms, latest_timeout * 2)
```

例如，如果 `insert_keeper_retry_initial_backoff_ms=100`、`insert_keeper_retry_max_backoff_ms=10000` 且 `insert_keeper_max_retries=8`，那么超时时间将分别为 `100, 200, 400, 800, 1600, 3200, 6400, 10000`。

除了容错之外，这些重试也是为了提供更好的用户体验——例如，如果 Keeper 因升级而重启，它们可以避免在执行 INSERT 期间返回错误。

<div id="insert_keeper_retry_initial_backoff_ms">
  ## insert\_keeper\_retry\_initial\_backoff\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="100" />

在 INSERT 查询执行期间，重试失败的 Keeper 请求时的初始超时时间 (以毫秒为单位)

可能的值：

* 正整数。
* 0 — 无超时限制

<div id="insert_keeper_retry_max_backoff_ms">
  ## insert\_keeper\_retry\_max\_backoff\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

在 INSERT 查询执行期间，重试失败的 Keeper 请求时的最大超时时间 (毫秒)

可能的值：

* 正整数。
* 0 — 最大超时时间不受限制
