Amazon MSK 配置 - Amazon Managed Streaming for Apache Kafka
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon MSK 配置

当您创建 MSK 集群但未指定自定义 MSK 配置时,Amazon MSK 会创建并使用默认配置,其值如下表所示。对于不在此表中的属性,Amazon MSK 使用与您的 Apache Kafka 版本相关的默认值。有关这些默认值的列表,请参阅 Apache Kafka 配置

默认配置值
名称 描述 默认值
allow.everyone.if.no.acl.found 如果没有与特定资源匹配的资源模式,则该资源没有关联的 ACL。在这种情况下,如果您将此属性设置为 true,则每个人都可以访问该资源,而不仅仅是超级用户。 true
auto.create.topics.enable 在服务器上启用主题的自动创建。 false
auto.leader.rebalance.enable 启用自动领导平衡。必要时,后台线程会定期检查并启动领导者平衡。 true
default.replication.factor 自动创建的主题的默认复制因子。 3 用于 3-AZ 集群,2 用于 2-AZ 集群

local.retention.bytes

在删除旧分段之前,分区本地日志段的最大大小。如果您未设置此值,则使用 log.retention.bytes 中的值。有效值应始终小于或等于 log.retention.bytes 值。默认值 -2 表示对本地保留没有限制。这对应于 retention.ms/bytes 设置 -1。local.retention.ms 和 local.retention.bytes 的属性类似于 log.restention.bytes。此配置用于确定日志段应在本地存储中保留多长时间。现有的 log.retention.* 配置是主题分区的保留配置。这包括本地和远程存储。有效值:[-2; +Inf] 中的整数

-2 表示无限制

local.retention.ms

删除本地日志段之前保留该段的毫秒数。如果您未设置此值,则使用 log.retention.ms 中的值。有效值应始终小于或等于 log.retention.bytes 值。默认值 -2 指示对本地保留没有限制。这对应于 -1 的 retention.ms/bytes 设置。

local.retention.ms 和 local.retention.bytes 的值类似于 log.restention.bytes。此配置用于确定日志段应在本地存储中保留多长时间。现有的 log.retention.* 配置是主题分区的保留配置。这包括本地和远程存储。有效值:> 0
-2 表示无限制
min.insync.replicas

当生产者将 acks 的值设置为"all"(或"-1")时,min.insync.replicas 中的值指定必须确认写入才能认为写入成功的最小副本数。如果此值未达到此最小值,则生产者会引发异常( NotEnoughReplicas 或 NotEnoughReplicasAfterAppend)。

当你将 min.insync.replicas 和 acks 中的值一起使用时,你可以强制执行更高的耐久性保证。例如,您可以创建一个重复因子为 3 的主题,将 min.insync.replicas 设置为 2,然后使用 acks 进行生成"all"。这可确保在大多数副本未收到写操作时,创建器将引发异常。

2 用于 3-AZ 集群,1 用于 2-AZ 集群
num.io.threads 服务器用于生成请求的线程数,其中可能包括磁盘 I/O。 8
num.network.threads 服务器用于接收来自网络的请求和向网络发送响应的线程数。 5
num.partitions 每个主题的默认日志分区数。 1
num.replica.fetchers 用于从源代理复制消息的 fetcher 线程数。如果增加此值,则可以增加 follower broker 中的 I/O 并行度。 2

remote.log.msk.disable.policy

与 remote.storage.enable 一起使用以禁用分层存储。将此策略设置为删除,表示当您将 remote.storage.enable 设置为 false 时,分层存储中的数据将被删除。

删除

remote.storage.enable

如果设置为 true,则为主题启用分层(远程)存储。如果设置为 false 且 remote.log.msk.disable.policy 设置为 “删除”,则禁用主题级分层存储。禁用分层存储时,会从远程存储中删除数据。为主题禁用分层存储时,则无法再次启用分层存储。 false
replica.lag.time.max.ms 如果跟踪器没有发送任何提取请求,或者至少在此毫秒数内没有使用到领导的日志结束偏移量,则领导会从 ISR 中删除追随者。 30000

retention.ms

必填字段。最小时间为 3 天。没有默认值,因为该设置是强制性的。

Amazon MSK 使用 retention.ms 值和 local.retention.ms 来确定数据何时从本地存储转移到分层存储。local.retention.ms 值指定何时将数据从本地存储移动到分层存储。retention.ms 值指定何时从分层存储中删除数据(即从集群中删除)。有效值:[-1; +Inf] 中的整数

最低 259,200,000 毫秒(3 天)。-1 表示无限保留。
socket.receive.buffer.bytes 套接字服务器套接字的 SO_RCVBUF 缓冲区。如果值为 -1,则使用操作系统默认值。 102400
socket.request.max.bytes 套接字请求中的最大字节数。 104857600
socket.send.buffer.bytes 套接字服务器套接字的 SO_SNDBUF 缓冲区。如果值为 -1,则使用操作系统默认值。 102400
unclean.leader.election.enable 表示您是否希望将不在 ISR 集中的副本作为领导者作为最后手段,即使这可能会导致数据丢失。 true
zookeeper.session.timeout.ms

Apache ZooKeeper 会话超时(以毫秒为单位)。

18000
zookeeper.set.acl 将客户端设置为使用安全 ACL。 false

有关如何指定自定义配置值的信息,请参阅自定义 MSK 配置