spring 集成amqp,如何通过routing key获取消息

spring integration amqp, how get message by routing key

我需要帮助如何构建 spring 集成 DSL 和 amqp 这种行为模型。 我有三种类型的消息,我需要消费者从队列中消费一种类型的消息,并且只有当消费者没有这种类型的任务在队列中等待更长时间 cca 30 秒时,才会寻找第二种类型的任务或第三种类型的任务。

您的逻辑看起来像 .from(Amqp.inboundAdapter() 之后的 .filter()

filter 必须查看一些共享组件(是的,Queue 可以)并决定如何处理 true 和 [=15= 中的消息] 例。

为此,您也可以查看 Idempotent Receiver。 它有 metadata-store 选项,可以用作该共享组件。当然,最后一些其他组件必须从存储中删除一个条目以允许接受相同类型的下一条消息。

您不能 select amqp 中单个队列的内容消息。您需要将消息路由到不同的队列。

您可以为第一种类型配置一个消息驱动的适配器。

然后,启动计时器,如果 30 秒过去了,则在其他队列上使用 RabbitTemplate 接收操作。