Как настроить параметр min.insyn c .replicas в Spring Kafka Producer? - PullRequest
0 голосов
/ 14 июля 2020

В приложении Java Spring я настраиваю производитель для использования Acks и должен также установить параметр min.insyn c .replicas .

Я установил Acks, используя:

configProps.put(ProducerConfig.ACKS_CONFIG, kafkaAcks);

, но я не могу найти свойство min.insync.replicas в ProducerConfig. Глядя на Kafka Spring Docs , я не нашел свойства, связанного с min.insync.replicas.

Итак, как мне настроить min.insync.replicas в приложении Kafka Spring?

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

1 Ответ

0 голосов
/ 14 июля 2020

min.insync.replicas не является конфигурацией производителя. Это параметр брокера / топи c.

Вы можете установить его на уровне брокера в своих server.properties файлах для своих брокеров.

В противном случае вы можете установить его для каждого топи c , либо при создании, либо путем его изменения.

...