Kafka - 将 log.cleanup.policy 更改为现有主题

问题描述 投票:0回答:2

我有一个 Kafka 主题,它接收很多消息。他们中的许多人都有相同的密钥,我只对最新消息感兴趣。环顾这个主题似乎非常适合配置

log.cleanup.policy=compact

我可以通过添加/更改配置来更改现有的 Kafka 主题配置吗

log.cleanup.policy=compact
或者我必须创建一个新主题?

我尝试创建一个新主题:

bin/kafka-topics.sh --create --topic compactedPricing \
    --partitions 1 --replication-factor 1 \
    --config cleanup.policy=compact \
    --config min.cleanable.dirty.ratio=0.001 \
    --config segment.ms=5000 \
    --bootstrap-server localhost:9094

但我收到以下错误:

[2022-10-25 16:01:40,114] ERROR org.apache.kafka.common.errors.TopicAuthorizationException: Authorization failed.

那么,是否需要有特殊的授权?

无论如何,我该怎么做?

apache-kafka data-compaction
2个回答
0
投票

显然较新版本不再支持使用 --alter 更改主题配置:

--alter 改变分区数量和 副本分配。更新 现有主题的配置 不再支持通过 --alter 此处(kafka-configs CLI >支持使用 --bootstrap-server 选项更改主题配置)。

我设法更改此配置的唯一方法是删除主题并重新创建它:

kafka-topics.sh --create --config cleanup.policy=compact --topic connect-offsets --bootstrap-server kafka-01:9092

0
投票

我使用的是kafka 3.6.1。要将清理策略从紧凑恢复为删除,我使用的是:

kafka-configs.sh --bootstrap-server localhost:9092 --entity-type topics --entity-name my-topic --alter --delete-config cleanup.policy
© www.soinside.com 2019 - 2024. All rights reserved.