问题标签 [spring-rabbit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - 文件入站通道适配器性能问题
我们有一个 spring 集成应用程序,它将监视传入的文件夹然后处理文件。当应用程序因维护或其他原因而关闭时,上游应用程序会用 100K 文件填充传入文件夹。当重新启动应用程序时它被冻结它不处理传入文件可能正在尝试加载所有传入文件。
这里是配置
感谢你的帮助。
谢谢,莫汉
rabbitmq - 在 RabbitMQ 中获取历史数据
我必须报告发布到 RabbitMQ 的消息数量和 RabbitMQ 在使用 1 天内消耗的消息数量。通过使用 RabbitMQ 提供的 REST API,我可以在某个时间间隔获取统计信息的快照。 如何使用相同的 REST API 获取 24 小时的数据。
spring - 文件入站适配器 多个线程处理同一个文件
我们有一个 spring 集成应用程序,它将监视传入的文件夹然后处理文件。我正在使用 prevent-duplicates="true" 但我必须更改为 false。这里我解释了原因。 文件入站通道适配器性能问题
现在我看到多个线程处理同一个文件。我感谢帮助!
谢谢,莫汉
rabbitmq - 在 RabbitMQ 中定义 ACK/NACK 的时间范围
如果有多个消费者,是否可以设置消费者应确认rabbitmq服务器的时间,否则该消息应被视为RabbitMQ服务器未确认并应提供给其他消费者?
rabbitmq - RabbitMQ:仅使用一个队列服务器时将消费者-生产者分开
我们将在我们的项目中使用rabbitmq,但面临一个问题,我们想在我们的开发机器上调试,所以必须将响应消息发送到最初发送请求消息的机器。我们将如何实现这一目标,spring-rabbitmq 框架中是否有现有的解决方案?
我们考虑了几种解决方案。比如为每台机器声明一组队列,队列名前缀为机器名。这可行吗?
java - Spring AMQP 集成 - 消费者手册 致谢
我正在支持测试Spring-AMQP
,Spring-Integration
我已经进行了配置和测试:
在此配置中,很明显,一旦消息到达,consumingChannel
它们就会被确认并因此从队列中删除。sleep
我通过在后面放高receive
并检查来验证这一点queue-size
。没有进一步的控制。
现在,如果我设置acknowledge-mode=MANUAL
,似乎没有办法ack
通过弹簧集成进行手动操作。
我需要处理消息,并在处理后执行此操作manual-ack
,直到ack
消息保持在durableQ
.
有什么方法可以处理MANUAL
ackspring-amqp-integration
吗?我想避免传递ChannelAwareMessageListener
给,inbound-channel-adapter
因为我想控制消费者的receive
.
更新:
listener-container
使用 own with时,这似乎是不可能的inbound-channel-adapter
:
messageListener
由于不允许使用属性,上述配置会引发错误,请参阅标记的内联注释。所以使用的目的listner-container
被打败了(暴露channel
via ChannelAwareMessageListener
)。
对我来说spring-integration
不能用于manual-acknowledgement
(我知道,这是一个很难说的说法!),任何人都可以帮助我验证这一点,或者我是否缺少任何特定的方法/配置?
spring - 最大尝试次数后在队列尾部重新排队兔子 AMQP 消息
我目前正在使用带有 spring (spring-rabbit-1.2.0-RELEASE) 的 RabbitMQ,配置如下:
我想在第三次尝试后将消息重新排入队列尾部。但我找不到执行此操作的方法。
有人有想法吗?
在此先感谢您的帮助。
rabbitmq - Spring Integration and AMQP:如何优雅地处理反序列化异常?
我使用RabbitMQ和Spring Integration来处理传入的 JSON 消息。
配置的相关部分如下所示:
我使用 Jackson Databind 作为 JSON 转换器。
有时传入的 JSON 消息的语法不正确。这会导致以下(正确)异常:
然后由errorHandler
which 简单地处理异常MessagePublishingErrorHandler
to errorChannel
。
到现在为止还挺好。问题是,该消息仍然被 AMQP 客户端拒绝,尽管我正在使用错误处理程序处理它。RabbitMQ 然后一遍又一遍地重新传递消息。即使配置死信队列也无济于事。任何想法如何正确处理这种情况?
处理过程中的异常(成功反序列化后)处理得很好:AMQP 消息确认和错误消息发送到errorChannel
.
有任何想法吗?
库版本:
- 弹簧集成:3.0.1
- Spring框架:4.0.2
- 杰克逊数据绑定:2.3.1
spring - 是否可以在 Spring AMQP 中有一个处理多种内容类型的异步消息接收器?
我在 Spring-AMQP 中使用异步消息接收器来接收消息。目前只处理带有 JSON 内容的消息,但我还需要处理带有 XML 内容的消息。我当前的实现MessageListener
有一个MessageConverter
注入并在 中使用它onMessage(Message)
,如下所示:
为了支持不同的内容类型,我显然可以使用MessageProperties
来询问内容类型标题并手动选择要使用的转换器。但这似乎需要做很多工作,比如 Spring 应该为这种情况提供更好的支持。我希望找到一个通用的MessageConverter
实现,可以从内容类型映射到特定的转换器,但似乎没有这样的事情。
编写这样的委派转换器是我的最佳选择吗?或者有没有办法配置ListenerContainer
支持异步接收和根据需要自动使用的多个转换器?
rabbitmq - 检索从中消费消息的 RabbitMQ 队列的名称
使用SimpleMessageListenerContainer
附加到多个队列并配置有ChannelAwareMessageListener
. 是否可以确定从哪个队列消费了一条消息?特别是如果消息是从 Exchange 路由到队列的。
看起来,如果消息直接发送到MessageProperties#getReceivedRoutingKey
将包含队列名称的队列,但如果消息通过 Exchange 路由到队列,则此信息包含使用的路由键。
我正在寻找一种机制,无论消息如何传递到队列,都可以正确提取此信息。或者在 RabbitMQ 端使用包含此信息的标头来丰富信息的机制。