java - 我需要当前易于遵循的说明来从 XML 配置 spring 集成 kafka

标签 java spring apache-kafka spring-integration

Spring 集成 kafka 模型已经发生了足够的变化,因为它已经过改进和简化,现有的演示、手册和说明不再起作用。目前的官方演示都是围绕注释构建的,这很酷,但基本上不可读,并且不适合我的架构,其中作业与 java 代码分开部署和管理。

是否有当前(2019)教程用于在XML中配置Spring集成生产者和消费者?

作为引用,以下是我的 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>

编辑:反对投票者注意

根据 Gary Russel 在他的回答中的评论,github 上的链接已损坏,现已修复

最佳答案

reference manual 是吗?没有提供您需要的东西?

例如:

<int-kafka:outbound-channel-adapter id="kafkaOutboundChannelAdapter"
                                    kafka-template="template"
                                    auto-startup="false"
                                    channel="inputToKafka"
                                    topic="foo"
                                    sync="false"
                                    message-key-expression="'bar'"
                                    send-failure-channel="failures"
                                    send-success-channel="successes"
                                    error-message-strategy="ems"
                                    partition-id-expression="2">
</int-kafka:outbound-channel-adapter>

<bean id="template" class="org.springframework.kafka.core.KafkaTemplate">
    <constructor-arg>
        <bean class="org.springframework.kafka.core.DefaultKafkaProducerFactory">
            <constructor-arg>
                <map>
                    <entry key="bootstrap.servers" value="localhost:9092" />
                    ... <!-- more producer properties -->
                </map>
            </constructor-arg>
        </bean>
    </constructor-arg>
</bean>

<int-kafka:message-driven-channel-adapter
        id="kafkaListener"
        listener-container="container1"
        auto-startup="false"
        phase="100"
        send-timeout="5000"
        mode="record"
        retry-template="template"
        recovery-callback="callback"
        error-message-strategy="ems"
        channel="someChannel"
        error-channel="errorChannel" />

<bean id="container1" class="org.springframework.kafka.listener.KafkaMessageListenerContainer">
    <constructor-arg>
        <bean class="org.springframework.kafka.core.DefaultKafkaConsumerFactory">
            <constructor-arg>
                <map>
                <entry key="bootstrap.servers" value="localhost:9092" />
                ...
                </map>
            </constructor-arg>
        </bean>
    </constructor-arg>
    <constructor-arg>
        <bean class="org.springframework.kafka.listener.config.ContainerProperties">
            <constructor-arg name="topics" value="foo" />
        </bean>
    </constructor-arg>

</bean>

等等...

关于java - 我需要当前易于遵循的说明来从 XML 配置 spring 集成 kafka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55266408/

相关文章:

java - 在 Spring Boot 中发出 Get 请求时出错

python - 在单个 docker 容器或连接到同一个数据库的两个容器中运行两个进程?

java - Apache 卡夫卡 : How to send data from different machine

Java,如何在方法中放置一个开关盒?

java - Spring Boot 仅在单元测试中返回错误的状态码

java - 如何确保多个数据库在 spring 中与单个事务管理器进行事务处理?

ssl - 卡夫卡动物园管理员安全

java - 转换为二进制 Java 类时 Jasmin NoSuchMethodError

java - 从Java Servlet使用AWS SimpleDB创建域

java - 用于上下文 session 的 Hibernate 拦截器?