Spring AMQP 集成从 2.2.3.RELEASE 到 5.5.20

问题描述 投票:0回答:1

我正在从 Spring AMQP inetgration 从 2.2.3.RELEASE 迁移到 5.5.20。 这是我的 mvn 依赖树矩阵。

[INFO] |  +- org.springframework.integration:spring-integration-stream:jar:5.5.20:compile
[INFO] |  +- org.springframework.integration:spring-integration-amqp:jar:5.5.20:compile
[INFO] |  |  \- org.springframework.amqp:spring-rabbit:jar:2.3.16:compile
[INFO] |  |     +- org.springframework.amqp:spring-amqp:jar:2.3.16:compile
[INFO] |  |     \- com.rabbitmq:amqp-client:jar:5.9.0:compile

根据文档,它应该按预期工作,并且文档还引用相同版本的签出 xml 配置。 https://docs.spring.io/spring-integration/docs/5.5.20/reference/html/amqp.html#amqp-inbound-channel-adapter

表示所有属性在最新版本中仍然存在。

<int-amqp:inbound-channel-adapter
        id="amqpAdapter" channel="amqpChatQ"
        queue-names="${amqp.queue.v1}" connection-factory="connectionFactory"
        auto-startup="true" concurrent-consumers="${amqp.consumer.count}"
        channel-transacted="true" task-executor="taskExecutor"
        prefetch-count="2" tx-size="2" acknowledge-mode="AUTO"
        error-handler="messageErrorHandler" />

但我在那里提到了一些文档,其中说tx-size =“2”已被弃用并移至batch-sizehttps://github.com/spring-projects/spring-integration/issues/9695 但如果我使用 batch-size 则不允许使用

仍然无法弄清楚如何使用文档,如果有人提供一些输入将会非常有帮助。

如果我们有这样的配置,可以吗?我没有看到任何问题

<bean id="customAmqpListenerContainer" class="org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer">
    <property name="connectionFactory" ref="connectionFactory" />
    <property name="autoStartup" value="true" />
    <property name="queueNames" value="${amqp.queue.v1}" />
    <property name="concurrentConsumers" value="${amqp.consumer.count}" />
    <property name="channelTransacted" value="true" />
    ----
</bean>

<int-amqp:inbound-channel-adapter
    id="amqpAdapter"
    channel="amqpChatQ"
    listener-container="customAmqpListenerContainer" />

spring spring-integration spring-amqp java-17 spring-integration-amqp
1个回答
0
投票

您提到的修复是新的,实际上不属于 Spring Integration

5.5.20
。这个版本已经很长时间不再支持了。考虑升级到最新支持的版本:https://spring.io/projects/spring-integration#learn

是的,

listener-container
参考完全取代了所有这些单独的属性。我相信你真的可以在
batchSize
bean 定义上使用
SimpleMessageListenerContainer
属性。

这在某种程度上与您的其他问题相关:将 spring 从 4.x 迁移到 5.x 和 jdk 17。有人可能会发现这是您的新产品的重复品。我不知道为什么你接受答案,因为我们在那里讨论的问题已经解决了。即使您仍然遇到一些问题,这也不是社区的运作方式。范围越短,对于任何面临类似问题的人来说就越容易消化。删除答案可能会误导社区,并会提出另一个问题。

© www.soinside.com 2019 - 2024. All rights reserved.