spring -gration-kafka: управляемая аннотациями обработка результата KafkaProducerMessageHandler? - PullRequest
0 голосов
/ 19 декабря 2018

Есть ли способ добиться поведения приведенного ниже кода с помощью кода, управляемого аннотациями?

@Bean
@ServiceActivator(inputChannel = "toKafka")
public MessageHandler handler() throws Exception {
    KafkaProducerMessageHandler<String, String> handler =
            new KafkaProducerMessageHandler<>(kafkaTemplate());
    handler.setTopicExpression(new LiteralExpression("someTopic"));
    handler.setMessageKeyExpression(new LiteralExpression("someKey"));
    handler.setSendSuccessChannel(success());
    handler.setSendFailureChannel(failure());
    return handler;
}

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

@Bean
public ProducerFactory<String, String> producerFactory() {
    Map<String, Object> props = new HashMap<>();
    props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, this.brokerAddress);
    // set more properties
    return new DefaultKafkaProducerFactory<>(props);
}

Можно ли указать каналы успешной / неудачной отправки с помощью аннотаций Spring Integration?

IЯ хотел бы, насколько это возможно, поддерживать постоянную последовательность действий (например, указание потока сообщений) во всем приложении, и мне нравятся диаграммы интеграции Spring (например, как соединяются каналы), которые IntelliJ автоматически генерирует при настройкеприложение Spring Integration с аннотациями XML или Java.

1 Ответ

0 голосов
/ 19 декабря 2018

Нет;это невозможно, каналы успеха / неудачи должны быть установлены явно при использовании конфигурации Java.

Эта конфигурация относится к обработчику Kafka, а @ServiceActivator - это общая аннотация для всех типов обработчиков сообщений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...