

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 默认 Amazon MSK 配置
<a name="msk-default-configuration"></a>

在未指定自定义 MSK 配置的情况下创建 MSK 集群时，Amazon MSK 会创建默认配置，并将此配置与下表中显示的值结合使用。对于不在此表中的属性，Amazon MSK 将使用与您的 Apache Kafka 版本关联的默认值。有关这些默认值的列表，请参阅 [Apache Kafka 配置](https://kafka.apache.org/documentation/#configuration)。


| Name | 说明 | 非分层存储集群的默认值 | 启用了分层存储的集群的默认值 | 
| --- | --- | --- | --- | 
| allow.everyone.if.no.acl.found | 如果没有资源模式与特定资源匹配，则该资源没有关联 ACLs。在本例中，如果将此属性设置为 true，则所有用户（而不仅仅是超级用户）均可访问该资源。 | true | true | 
| auto.create.topics.enable | 在服务器上启用主题的自动创建。 | false | false | 
| auto.leader.rebalance.enable | 启用自动领导平衡。如果需要，后台线程会定期检查并启动领导平衡。 | true | true | 
| default.replication.factor | 自动创建的主题的默认复制因子。 | 3 表示位于 3 个可用区中的集群，2 表示位于 2 个可用区中的集群。 | 3 表示位于 3 个可用区中的集群，2 表示位于 2 个可用区中的集群。 | 
|  local.retention.bytes  |  分区在删除旧日志段之前的最大本地日志段大小。如果未设置此值，则使用 log.retention.bytes 中的值。有效值应始终小于或等于 log.retention.bytes 值。默认值 -2 表示对本地保留没有限制。这与 retention.ms/bytes 的设置 -1 相对应。local.retention.ms 和 local.retention.bytes 属性与 log.retention 类似，因为它们用于确定日志段应在本地存储中保留多长时间。现有的 log.retention.\$1 配置是主题分区的保留配置。这包括本地存储和远程存储。有效值：[-2; \$1Inf] 中的整数  | -2 表示无限制 | -2 表示无限制 | 
|  local.retention.ms  | 删除之前保留本地日志段的毫秒数。如果未设置此值，Amazon MSK 使用 log.retention.ms 中的值。有效值应始终小于或等于 log.retention.bytes 值。默认值 -2 表示对本地保留没有限制。这与 retention.ms/bytes 的设置 -1 相对应。local.retention.ms 和 local.retention.bytes 值类似于 log.retention。MSK 使用此配置确定日志段应在本地存储中保留多长时间。现有的 log.retention.\$1 配置是主题分区的保留配置。这包括本地存储和远程存储。有效值为大于 0 的整数。 | -2 表示无限制 | -2 表示无限制 | 
|  log.message.timestamp.difference.max.ms  | Kafka 3.6.0 中已弃用此配置。添加了两种配置，即 log.message.timestamp.before.max.ms 和 log.message.timestamp.after.max.ms。代理收到消息时的时间戳与消息中指定的时间戳之间允许的最大差异。如果 log.message.timestamp.type=CreateTime，则如果时间戳的差异超过此阈值，则消息将被拒绝。如果 log.message.timestamp.type LogAppendTime =，则忽略此配置。允许的最大时间戳差异不应大于 log.retention.ms，以避免不必要的频繁日志滚动。 | 9223372036854775807 | Kafka 2.8.2 分层存储和 Kafka 3.7.x 分层存储为 86400000。 | 
| log.segment.bytes | 单个日志文件的最大大小。 | 1073741824 | 134217728 | 
| min.insync.replicas |  当生成器将 acks 的值（确认生成器从 Kafka 代理获得）设置为 `"all"`（或 `"-1"`）时，min.insync.replicas 中的值会指定为使写入被视为成功而必须确认写入的最小副本数。如果此值未达到此最小值，则生产者会引发异常（ NotEnoughReplicas 或 NotEnoughReplicasAfterAppend）。 当您同时使用 min.insync.replicas 和 acks 中的值时，可以强制执行更大的持久性保证。例如，您可以创建复制因子为 3 的主题，将 min.insync.replicas 设置为 2，并在 acks 为 `"all"` 的情况下进行生成。这可确保在大多数副本未收到写操作时，创建器将引发异常。  | 2 表示位于 3 个可用区中的集群，1 表示位于 2 个可用区中的集群。 | 2 表示位于 3 个可用区中的集群，1 表示位于 2 个可用区中的集群。 | 
| num.io.threads | 服务器用于生成请求的线程的数量，其中可能包括磁盘 I/O。 | 8 | max (8, vCPUs) 其中 v CPUs 取决于代理的实例大小 | 
| num.network.threads | 服务器用于接收来自网络的请求并向网络发送响应的线程数量。 | 5 | max (5, v CPUs /2) 其中 v CPUs 取决于代理的实例大小 | 
| num.partitions | 每个主题的默认日志分区数。 | 1 | 1 | 
| num.replica.fetchers | 用于从源代理复制消息的提取器线程数。如果增加此值，则可以提高关注者代理中的 I/O 并行度。 | 2 | max (2, v CPUs /4) 其中 v CPUs 取决于代理的实例大小 | 
|  remote.log.msk.disable.policy  |  与 remote.storage.enable 一起使用以禁用分层存储。将此策略设置为“删除”，以表示在将 remote.storage.enable 设置为 false 时，分层存储中的数据将被删除。  | 不适用 | 无 | 
| remote.log.reader.threads | 远程日志读取器线程池大小，用于安排任务以从远程存储中提取数据。 | 不适用 | max (10, v CPUs \$1 0.67) 其中 v CPUs 取决于代理的实例大小 | 
|  remote.storage.enable  | 如果设置为 true，则为主题启用分层（远程）存储。如果设置为 false，且 remote.log.msk.disable.policy 设置为“删除”，则禁用主题级别的分层存储。禁用分层存储时，会从远程存储中删除数据。禁用主题的分层存储时，无法再次启用分层存储。 | false | false | 
| replica.lag.time.max.ms | 如果跟踪器没有发送任何提取请求，或者至少在此毫秒数内没有使用到领导的日志结束偏移量，则领导会从 ISR 中删除追随者。 | 30000 | 30000 | 
|  retention.ms  |  必填字段。最短时间为 3 天。该设置是强制性的，因此没有默认值。 Amazon MSK 使用 retention.ms value 与 local.retention.ms 来确定数据何时从本地存储移动到分层存储。local.retention.ms 值指定何时将数据从本地存储移动到分层存储。retention.ms 值指定何时从分层存储中删除数据（即从集群中删除）。有效值：[-1; \$1Inf] 中的整数  | 最少 259,200,000 毫秒（3 天）。-1 表示无限保留。 | 最少 259,200,000 毫秒（3 天）。-1 表示无限保留。 | 
| socket.receive.buffer.bytes | 套接字服务器套接字的 SO\$1RCVBUF 缓冲区。如果值为 -1，则使用操作系统默认值。 | 102400 | 102400 | 
| socket.request.max.bytes | 套接字请求中的最大字节数。 | 104857600 | 104857600 | 
| socket.send.buffer.bytes | 套接字服务器套接字的 SO\$1SNDBUF 缓冲区。如果值为 -1，则使用操作系统默认值。 | 102400 | 102400 | 
| unclean.leader.election.enable | 表示您是否希望不在 ISR 集中的副本作为最后手段充当领导，即使这可能会导致数据丢失。 | true | false | 
| zookeeper.session.timeout.ms |  Apache ZooKeeper 会话超时时间（以毫秒为单位）。  | 18000 | 18000 | 
| zookeeper.set.acl | 设置为安全使用的客户端 ACLs。 | false | false | 

有关如何指定自定义配置值的信息，请参阅[自定义 Amazon MSK 配置](msk-configuration-properties.md)。