Каков последний (2019 г.) предпочтительный способ интеграции пружинной партии с кафкой? - PullRequest
0 голосов
/ 21 марта 2019

Это дополнительный вопрос к Мне нужны текущие простые инструкции по настройке пружинной интеграции kafka из XML

Spring -gration-kafka сильно развился за последние несколько итераций,и многие старые примеры больше не работают.

В частности, этот bean-компонент, который соединяет мир весеннего пакета с миром весенней интеграции, не будет создан, поскольку класс KafkaTemplate не реализует MessagingTemplate.Каков текущий рекомендуемый способ выполнения этой интеграции?

<bean id="partitionHandler" class="org.springframework.batch.integration.partition.MessageChannelPartitionHandler">
    <property name="stepName" value="fm-step0002.messager"/>
    <property name="gridSize" value="3"/> 
    <property name="messagingOperations" ref="kafkaTemplate"/>
</bean>

Вот фрагмент из моего POM, который показывает версии библиотек, которые я использую:

        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-core</artifactId>
            <version>5.1.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-kafka</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-file</artifactId>
            <version>5.1.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-core</artifactId>
            <version>4.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-infrastructure</artifactId>
            <version>4.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-integration</artifactId>
            <version>4.1.1.RELEASE</version>
        </dependency>

1 Ответ

2 голосов
/ 21 марта 2019

MessagingTemplate является основным компонентом Spring Integration;он не имеет никакого отношения к используемому вами брокеру (RabbitMQ, Kafka, JMS и т.*

См. Пакетную документацию (нажмите кнопку XML в верхней части документа, чтобы изменить примеры с java на XML).

Пример там применим к JMS, ноКонфигурация аналогична для Kafka.

<bean id="partitionHandler"
   class="org.springframework.batch.integration.partition.MessageChannelPartitionHandler">
  <property name="stepName" value="step1"/>
  <property name="gridSize" value="3"/>
  <property name="replyChannel" ref="outbound-replies"/>
  <property name="messagingOperations">
    <bean class="org.springframework.integration.core.MessagingTemplate">
      <property name="defaultChannel" ref="outbound-requests"/>
      <property name="receiveTimeout" value="100000"/>
    </bean>
  </property>
</bean>

<int:channel id="outbound-requests"/>
<int-jms:outbound-channel-adapter destination="requestsQueue"
    channel="outbound-requests"/>
...