我的应用程序当前使用RabbitMQ对消息进行排队和处理,以启动数据流并将流数据传递到处理区域。
因为我们只希望一个客户端使用数据流而只有一个客户端来处理流数据,所以我目前正在使用PUSH消息。
我发现的问题是,如果我确认PUSH消息启动数据流并且该过程失败,则该消息将不会被重新排队。如果我不确认该消息,则在我确认数据流消息或进程终止之前,我的其他PUSH消息都不会被接收。
我查看了REQUEST / REPLY消息,但我认为同样的问题可能适用于此处,如果进程/服务器死亡,我需要自动重新排队。
是否可以使用非阻塞PUSH消息?
答案 0 :(得分:0)
也许有价值的是" qos"消费者的/ prefetch设置:https://www.rabbitmq.com/consumer-prefetch.html可以将值设置为大于1,以允许单个消费者一次获得多条消息。这会导致您正在寻找的非阻塞PUSH(只读)消息吗?