如何将 auto.create.topics.enable 设置为 AWS MSK 集群上的默认配置
How to set auto.create.topics.enable as default config on AWS MSK cluster
当生产者首次向主题发布消息时,我们的 AWS MSK 集群不会自动创建主题。这是令人惊讶的,因为根据 https://kafka.apache.org/documentation/#brokerconfigs 的默认行为应该是 auto.create.topics.enable = true
.
我曾尝试在我的代理上设置此配置,但我做不到,因为该配置是 read-only
用于动态更新。
$ kafka-configs --bootstrap-server $KAFKA_BROKER --entity-type brokers --entity-default --alter --add-config auto.create.topics.enable=true
Error while executing config command with args '--bootstrap-server $KAFKA_BROKER --entity-type brokers --entity-default --alter --add-config auto.create.topics.enable=true'
java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.InvalidRequestException: Invalid config value for resource ConfigResource(type=BROKER, name=''): Cannot update these configs dynamically: Set(auto.create.topics.enable)
注意:我在输出
中用$KAFKA_BROKER
替换了我们经纪人的IP
如何配置我的 AWS MSK Kafka 集群以启用自动创建主题?
更新
您现在可以自定义 MSK configuration:
auto.create.topics.enable
: Enables topic autocreation on the server.
因此,auto.create.topics.enable=true
(defaults to false
) 现在应该照常进行。
虽然 auto.create.topics.enable
通常默认为 true
,但 AWS MSK 并非如此。根据今年 2 月在柏林 AWS Kafka 峰会上提出的these slides,以下是 Amazon MSK 的默认配置参数:
offsets.topic.replication.factor 3
transaction.state.log.replication.factor 3
transaction.state.log.min.isr 2
auto.create.topics.enable False
default.replication.factor 3
min.insync.replicas 2
unclean.leader.election.enable True
auto.leader.rebalance.enable True
authorizer.class.name kafka.security.auth.SimpleAclAuthorizer
group.initial.rebalance.delay.ms 3000
log.retention.hours 168
请注意,即使是 Kafka 文档也提到 suggested production configuration 应该设置为 false
。
接下来,您现在可以通过 customizing the configuration 将此参数设置为 true
,但默认情况下它将保持 false
,因为这是推荐的生产配置。
当生产者首次向主题发布消息时,我们的 AWS MSK 集群不会自动创建主题。这是令人惊讶的,因为根据 https://kafka.apache.org/documentation/#brokerconfigs 的默认行为应该是 auto.create.topics.enable = true
.
我曾尝试在我的代理上设置此配置,但我做不到,因为该配置是 read-only
用于动态更新。
$ kafka-configs --bootstrap-server $KAFKA_BROKER --entity-type brokers --entity-default --alter --add-config auto.create.topics.enable=true
Error while executing config command with args '--bootstrap-server $KAFKA_BROKER --entity-type brokers --entity-default --alter --add-config auto.create.topics.enable=true'
java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.InvalidRequestException: Invalid config value for resource ConfigResource(type=BROKER, name=''): Cannot update these configs dynamically: Set(auto.create.topics.enable)
注意:我在输出
中用$KAFKA_BROKER
替换了我们经纪人的IP
如何配置我的 AWS MSK Kafka 集群以启用自动创建主题?
更新
您现在可以自定义 MSK configuration:
auto.create.topics.enable
: Enables topic autocreation on the server.
因此,auto.create.topics.enable=true
(defaults to false
) 现在应该照常进行。
虽然 auto.create.topics.enable
通常默认为 true
,但 AWS MSK 并非如此。根据今年 2 月在柏林 AWS Kafka 峰会上提出的these slides,以下是 Amazon MSK 的默认配置参数:
offsets.topic.replication.factor 3
transaction.state.log.replication.factor 3
transaction.state.log.min.isr 2
auto.create.topics.enable False
default.replication.factor 3
min.insync.replicas 2
unclean.leader.election.enable True
auto.leader.rebalance.enable True
authorizer.class.name kafka.security.auth.SimpleAclAuthorizer
group.initial.rebalance.delay.ms 3000
log.retention.hours 168
请注意,即使是 Kafka 文档也提到 suggested production configuration 应该设置为 false
。
接下来,您现在可以通过 customizing the configuration 将此参数设置为 true
,但默认情况下它将保持 false
,因为这是推荐的生产配置。