Этот конкретный фрагмент имеет смысл реализовать в приложении, а не в XML, потому что он является константой во всем кластере, а не локализован для одного задания.
Из анализа XSD он выглядит какxml для int-kafka:outbound-channel-adapter
создает KafkaProducerMessageHandler.
Нет видимого способа установить канал, тему или большинство других атрибутов.
Примечание для потенциальных downvoters - (rant on)Я был RTFM в течение недели, и я более запутался, чем когда я начал.Мой выбор языка окончил от прилагательных до наречий, и я начинаю заимствовать слова из других языков.Ответ может быть там.Но если это так, он не может быть обнаружен простыми смертными.(разглагольствования)
Конфигурация XML:
<int-kafka:outbound-channel-adapter id="kafkaOutboundChannelAdapter"
kafka-template="kafkaTemplate"
auto-startup="false"
channel="outbound-staging"
topic="foo"
sync="false"
message-key-expression="'bar'"
send-failure-channel="failures"
send-success-channel="successes"
partition-id-expression="2">
</int-kafka:outbound-channel-adapter>
Если это так, то я ожидаю, что конфигурация java будет выглядеть примерно так:
@Bean
public KafkaProducerMessageHandler kafkaOutboundChannelAdapter () {
KafkaProducerMessageHandler result = new KafkaProducerMessageHandler(kafkaTemplate());
result.set????? (); // WTH?? No methods for most of the attributes?!!!
return result;
}
РЕДАКТИРОВАТЬ: Дополнительная информация о решаемой проблеме высокого уровня
В рамках более крупного проекта, я пытаюсь реализовать пример учебника из https://docs.spring.io/spring-batch/4.0.x/reference/html/spring-batch-integration.html#remote-partitioning, с поддержкой Кафки вместо JMSbacking.
Я считаю, что окончательный процесс интеграции должен выглядеть примерно так:
partitionHandler -> messagingTemplate -> outbound-запросы (DirectChannel) -> outbound-staging (KafkaProducerMessageHandler) -> kafka
kafka -> executeContainer (KafkaMessageListenerContainer) -> inboundKafkaRequests (KafkaMessageDrivenChannelAdapter) -> входящие запросы (DirectChannel) -> serviceActivator (StepExecutionRequestHandler) Переадресация получателя ()-> kafka
kafka -> replyContainer (KafkaMessageListenerContainer) -> inboundKafkaReplies (KafkaMessageDrivenChannelAdapter) -> входящие ответы (DirectChannel) -> обработчик разбиения