1.代码示例

public class AdminSample {
private static final String topicName = "steven";

private static final int partitionNumber = 1;

private static final Short replicationFactor = 1;

/**
* 创建AdminClient
*/
public static AdminClient adminClient() {
Properties properties = new Properties();
properties.setProperty(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "127.0.0.1:9092");
AdminClient adminClient = AdminClient.create(properties);
return adminClient;
}

/**
* config信息修改
*/
public static void main(String[] args) throws ExecutionException, InterruptedException {
AdminClient adminClient = AdminSample.adminClient();
Map<ConfigResource, Config> configMaps = new HashMap<>();
// 组织两个参数
ConfigResource configResource = new ConfigResource(ConfigResource.Type.TOPIC, topicName);
Config config = new Config(Arrays.asList(new ConfigEntry("preallocate", "true")));
configMaps.put(configResource, config);
AlterConfigsResult alterConfigsResult = adminClient.alterConfigs(configMaps);
alterConfigsResult.all().get();
}
}

代码运行成功后,再运行2.6的代码,可以看到ConfigEntry(name=preallocate, value=false, source=DEFAULT_CONFIG, isSensitive=false, isReadOnly=false, synonyms=[])的value值被更改为了true。