亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java在源碼中設置Kafka保留時間

Java在源碼中設置Kafka保留時間

蠱毒傳說 2023-10-12 16:42:34
我有以下問題。我需要在 Kafka 中為某些選定的主題設置保留時間。我找到了一個解決方案,可以使用以下命令進行設置:kafka-topics --zookeeper localhost:2181 --alter --topic topic-name --config retention.ms=-1我檢查了 Kafka 的 Web UI 并確認它已更改。如果可能的話,我想自己在Java中設置保留時間,但我似乎找不到合適的類/配置來設置時間。我以為我可以在 ProducerConfig 類中獲取有關保留的信息,但我在那里找不到它。是否可以在 Java 中設置保留時間?如果可以,我該如何完成?提前致謝!
查看完整描述

1 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

這對我有用:)


    private void setRetentionTime(String topicName, int retentionTime) {

        ConfigResource resource = new ConfigResource(Type.TOPIC, topicName);


        Collection<ConfigEntry> entries = new ArrayList<>();

        entries.add(new ConfigEntry(TopicConfig.RETENTION_MS_CONFIG, String.valueOf(retentionTime)));


        Config config = new Config(entries);

        Map<ConfigResource, Config> configs = new HashMap<>();

        configs.put(resource, config);


        AdminClient client = kafkaConfig.createAdminClient();

        client.alterConfigs(configs);

    }


查看完整回答
反對 回復 2023-10-12
?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

我以前從 Java 知道你可以作為客戶端登錄。無法更改主題配置。

最近他們在新版本的 Kafka 中引入了這一點,我認為這是可能做到的。

https://kafka.apache.org/10/javadoc/org/apache/kafka/clients/admin/KafkaAdminClient.html#alterConfigs-java.util.Map-org.apache.kafka.clients.admin.AlterConfigsOptions-

我現在的答案聽起來有點模糊,但如果你想要完整的答案,你必須更具體。如果您有 Kafka 的確切版本、用于連接到 kafka 的庫等,我可以擴展答案...

我認為從應用程序更改服務器端配置不是最好的主意。這是更多基礎設施的事情,不應該在運行應用程序時在運行時完成。


查看完整回答
反對 回復 2023-10-12
  • 1 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號