如何在 Spring Kafka Producer 上配置 min.insync.replicas 参数?

How to configure min.insync.replicas parameter on Spring Kafka Producer?

在 Java Spring 应用程序中,我正在配置 Producer 以使用 Acks and must set min.insync.replicas 参数。

我使用以下方法设置了 Acks:

configProps.put(ProducerConfig.ACKS_CONFIG, kafkaAcks);

但我在 ProducerConfig 上找不到 min.insync.replicas 属性。查看 Kafka Spring Docs 我没有找到与 min.insync.replicas 相关的 属性。

那么,我如何在 Kafka Spring 应用程序上配置 min.insync.replicas

    @Bean
public KafkaTemplate<String, GenericRecord> kafkaTemplate() {
    return new KafkaTemplate<>(producerFactory());
}

public ProducerFactory<String, GenericRecord> producerFactory() {
    return new DefaultKafkaProducerFactory<>(getProducerGenericRecordConfigurations());
}

private Map<String, Object> getProducerGenericRecordConfigurations() {
    Map<String, Object> configProps = new HashMap<>();
    configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaBootstrapServerUrl);
    configProps.put(KafkaAvroDeserializerConfig.SCHEMA_REGISTRY_URL_CONFIG, schemaRegistryURL);
    configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
    configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, KafkaAvroSerializer.class);
    configProps.put(ProducerConfig.ACKS_CONFIG, kafkaAcks);
    return configProps;
}

min.insync.replicas 不是生产者配置。这是一个 broker/topic 设置。

您可以在经纪人级别的 server.properties 文件中为您的经纪人设置它。

否则,您可以在创建时或通过更改每个主题进行设置。