spring-amqp相关内容

SimpleMessageListenerContainer 在 TransactionSystemException 后持续消耗

当我的事务标记为回滚时,我不希望 SimpleMessageListenerContainer 继续使用消息. 我没有在我的配置文件中添加 listener-container 并试图重新抛出 AmqpRejectAndDontRequeueException.它不工作.这是我的代码库: @Transactional公共类 MySecondService {@资源私人 MySecondRe ..
发布时间:2021-08-20 20:44:42 其他开发

发布者从出站适配器确认后如何将 basicAck 发送到入站适配器

我们有一个接收事件通知的入站通道适配器.消费者标准的复杂性限制了我们使用简单的路由键来分发消息的能力,因此应用程序使用拆分器通过直接交换将该消息发送到感兴趣的订阅者队列. 我们想在我们的出站通道适配器上使用发布者确认来确保交付到客户端队列.我们要等待发布者确认ack原始消息,如果没有收到发布者确认或者如果ack==false我们想要nack原始消息来自入站通道适配器的消息. 我认为这将 ..
发布时间:2021-08-20 20:39:16 其他开发

Spring 集成 - AMQP 支持的消息通道和消息转换

我试图在我的 Spring Integration 应用程序中使用 AMQP 支持的消息通道,但我认为我从根本上误解了一些东西,特别是围绕 Message 接口以及 GenericMessage 被写入和读取,一个 RabbitMQ 队列. 假设我有一个包含以下域模型对象的 Spring Integration 应用程序: @Immutable类 Foo {字符串名称长量} 并且我声明了 ..
发布时间:2021-08-20 20:35:47 其他开发

Spring Boot 多个 RabbitMQ 监听器到单个容器

我正在使用 spring boot(基于注释)开发 RabbitMQ.我正在尝试向单个容器添加多个侦听器,但只有一个侦听器可以工作. 我能够初始化两个容器并为每个容器分配单独的消息侦听器.这是否是添加多个侦听器的唯一方法,其中每个容器都有各自的侦听器?我正在使用 ChannelAwareMessageListener 接口,以便我可以单独处理消息并确认它们.我不想使用 RabbitListe ..
发布时间:2021-08-20 19:44:16 其他开发

在 Spring AMQP 中检测和恢复凭据删除

我们有一个 Spring Cloud Config 设置,使用 Vault 数据库后端(MySQL 和 RabbitMQ),这使我们能够将生成的凭据注入到如下属性中: spring.rabbitmq.username spring.rabbitmq.password 当我们的应用启动时,我们有一组新的 Rabbit 凭据,并且我们可以按需请求一组新的凭据. 由于我们的 Rabb ..
发布时间:2021-08-20 19:41:12 其他开发

SpringBoot 禁用 rabbitTemplate 用于兔子健康检查的重试策略

我的 SpringBoot 配置包含非常强大的 rabbitTemplate 重试策略 弹簧:兔米克:模板:重试:启用:真初始间隔:500最大尝试:10乘数:5最大间隔:60000 这个配置的问题是当健康端点被调用并且rabbitMQ关闭时,连接挂起真的很长时间. 添加像 这样的属性 spring.rabbitmq.connection-timeout=500 或spring.rab ..
发布时间:2021-08-20 19:00:28 其他开发

如何启动、停止和重新连接 spring rabbitmq 侦听器容器及其连接?

我有一个互联网连接,其中出口网关会定期更改.在发生这种情况之前的几秒钟,我收到了我的 Spring 应用程序的事件或回调通知.我想停止我的兔子消费者和连接,然后在几秒钟后再次连接(当我的网络连接恢复时). 我正在使用 spring amqp 基于注释的方法,但我也可以切换到另一种实现. 我知道 spring-amqp 正在为我重新连接,但我想自己这样做以更好地控制它.我如何以编程方式完 ..
发布时间:2021-08-20 18:50:26 其他开发

通过 spring-rabbitmq 自动重试连接到代理

我已阅读此文档片段: RabbitMQ 自动连接/拓扑恢复 从 Spring AMQP 的第一个版本开始,框架就提供了它的代理故障时自己的连接和通道恢复.此外,如第 3.1.10 节“配置代理"中所述,RabbitAdmin 将在以下情况下重新声明任何基础设施 bean(队列等)重新建立连接.因此它不依赖于现在由 amqp-client 库提供的自动恢复.春天AMQP 现在使用 4.0 ..
发布时间:2021-08-20 18:40:45 其他开发

RabbitMQ Spring Boot 应用程序处理代理关闭

我有一个 Spring Boot 应用程序配置为连接到本地 RabbitMQ 代理.我还配置了一个 FixedBackOff 策略,以便在 3 次尝试失败后停止重试连接. 编辑 1:我对 FixedBackOff 有以下配置,正如@gary-russell 在 此处: @Bean(name = "rabbitListenerContainerFactory")公共 SimpleRabbit ..
发布时间:2021-07-02 18:43:27 其他开发

RabbitMQ 监听器在 MessageListener 抛出异常时停止监听消息

我使用 Spring AMQP 来处理 RabbitMQ 中的消息. 以下是问题: 1.(比如说)RabbitMQ 中有3条处于就绪状态的消息2. 第一个被 MessageListener 拾取并开始处理.(说)它最终抛出一个异常 3. 在这种情况下,容器保持运行状态,但在我重新启动容器之前不会处理剩余的 2 条消息.此外,第一条消息保持未确认状态. 这是预期的行为吗?如果没有, ..
发布时间:2021-07-02 18:43:23 其他开发

Spring AMQP RabbitMQ RPC - 处理响应异常

我正在尝试使用 RPC AMQP RabbitMQ 队列来发送和接收消息.问题是我设置了一个 setReplyTimeout 值.发生这种情况时,我会收到“org.springframework.amqp.AmqpRejectAndDontRequeueException:超时后收到回复".我在传入队列上设置了 DLQ,但是当 spring 尝试在其自动创建的队列上返回消息时,似乎收到了异常.因此 ..
发布时间:2021-07-02 18:43:21 其他开发

RabbitMq 连接超时异常

使用 spring amqp (rabbitmq): 我的消费者花费相当多的时间来处理消息,有时我的业务逻辑需要超过 2 个小时,但是在处理之后,当我尝试确认 rabbitmq 的“基本确认"时,它会引发连接超时异常. 我该怎么办?我应该让连接永远存在还是使用心跳? 解决方案 考虑在长期业务运营开始后立即确认的替代选项,然后通知其状态:失败或成功,以防万一有任何依赖的演员. ..
发布时间:2021-07-02 18:43:08 其他开发

Spring AMQP RabbitMQ 代码中的发送方是否不提供交换类型?

我在 RabbitMQ 中有一个基本问题.在 Spring AMQP 的情况下,在使用注解的 XML 配置和 Java 配置中,所使用的交换类型仅在侦听器端知道.我的意思是,只有消费者配置代码包含正在使用的交换类型(主题/直接/扇出).在发送方,我们将 - amqpTemplate.convertAndSend("exchange_name", "routing_key",sampleMessa ..
发布时间:2021-07-02 18:42:42 其他开发

在运行时使用 SmartLifecycle 添加队列时出现问题

所以,这是与 这个 我创建了一个案例,其中 ListenerContainer 实际上在 @Bean 之前以阶段 0 运行,即使它具有阶段 Integer.MAX_INT.代码如下: import java.util.ArrayList;导入 java.util.Arrays;导入 java.util.List;导入 org.springframework.amqp.core.QueueB ..
发布时间:2021-07-02 18:42:27 其他开发

如何使用 SimpleMessageListenerContainer 禁用 RabbitMQ 预取计数

RabbitMQ 提供了选择性设置预取计数的能力. 使用 spring-amqp 的 SimpleMessageListenerContainer,我注意到预取计数总是被设置.我无法将预取计数设置为 0,因为 SimpleMessageListenerContainer 将其设置为至少 txSize 必须大于零(即使没有涉及事务).那么有没有办法禁用预取计数,即使其不受限制? 这里是s ..
发布时间:2021-07-02 18:41:44 其他开发

如何在 SimpleMessageListenerContainer.java 中记录队列名称

我们遇到了一位消费者的问题,需要调试代码.SimpleRabbitListenerContainerFactory 允许设置一个 ConsumerTagStrategy,它应该在日志记录期间添加标签. @Beanpublic SimpleRabbitListenerContainerFactory analyzeTransactionListenerContainerFactory(Connec ..
发布时间:2021-07-02 18:41:35 其他开发

为什么从已填充的队列中调度 Spring AMQP 消息会出现延迟?

我在我的消息驱动应用程序中使用 Spring AMQP.我注意到在我的消息侦听器的调用之间有大约 300 毫秒的几乎恒定的延迟,即使我确定队列中充满了消息.下面的日志文件显示了 BlockingQueueConsumer.nextMessage 和 BlockingQueueConsumer.handle 之间的延迟,并从其间的另一个线程调用了 BlockingQueueConsumer.hand ..
发布时间:2021-07-02 18:41:23 其他开发