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);
}

TA貢獻1995條經驗 獲得超2個贊
我以前從 Java 知道你可以作為客戶端登錄。無法更改主題配置。
最近他們在新版本的 Kafka 中引入了這一點,我認為這是可能做到的。
我現在的答案聽起來有點模糊,但如果你想要完整的答案,你必須更具體。如果您有 Kafka 的確切版本、用于連接到 kafka 的庫等,我可以擴展答案...
我認為從應用程序更改服務器端配置不是最好的主意。這是更多基礎設施的事情,不應該在運行應用程序時在運行時完成。
添加回答
舉報