我有一个Grails应用程序,它使用grails RabbitMQ插件异步处理消息。队列设置为持久,消息是持久的,并且有20个并发使用者。确认已打开,并设置为根据使用者是否正常返回或引发异常来发出确认/否定。这些使用者通常可以很好地处理消息,但是当队列很快装满(一次发送约5,000条消息)时,某些消息就会丢失。
在接收到来自Rabbit的消息时,使用方已登录,并且该记录事件从未发生,因此使用方根本没有收到丢失的消息。此外,日志中没有异常。
我尝试将使用者的预取值提高到5(从1),但这并不能解决问题。我检查了RabbitMQ UI,队列中没有消息,也没有未确认的消息。