Как установить auto.create.topics.enable в качестве конфигурации по умолчанию в кластере AWS MSK

Наш кластер 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)

примечание: я заменил IP нашего брокера на $KAFKA_BROKER в выводе

Как настроить кластер AWS MSK Kafka для автоматического создания тем?


person rpassza    schedule 26.04.2019    source источник


Ответы (2)


Обновить

Теперь вы можете настроить конфигурацию MSK:

auto.create.topics.enable: включает автоматическое создание темы на сервере.

Следовательно, auto.create.topics.enable=true (по умолчанию false) теперь должно работать как обычно.


Предыдущий ответ

Хотя auto.create.topics.enable обычно по умолчанию true, это не относится к AWS MSK. В соответствии с данными эти слайды, представленные на саммите AWS Kafka в Берлине в феврале этого года, представляют собой следующие параметры конфигурации по умолчанию для 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 упоминается, что для предлагаемой производственной конфигурации должно быть установлено значение false. Также кажется, что это свойство нельзя настроить в MSK, поэтому я бы предложил либо связаться со службой поддержки AWS, либо просто жить с этим и создавать темы перед запуском ваших продюсеров.

person Giorgos Myrianthous    schedule 26.04.2019
comment
Пожалуйста, подумайте об удалении старой неверной информации из вашего ответа. Не вижу смысла хранить его. - person Gray; 14.01.2021

В дальнейшем вы можете установить для этого параметра значение true путем настройки конфигурацию, однако она останется false по умолчанию, поскольку это рекомендуемая производственная конфигурация.

person Eno Thereska    schedule 10.07.2019