当前,在我的项目中,我正在使用Rabbitmq的Spring Cloud Stream。一切都很好,但是问题是当我在StreamListener中为消息类型设置条件时。如果RabbitMQ与类型不匹配(找不到ID为ZZZZZZ的消息的@StreamListener匹配项),则此消息将从队列中消失。如果邮件类型错误,我不想删除此邮件。这个问题有解决方案吗?
答案 0 :(得分:1)
有两种方法可以做到:
这两种方法都会遭受无限循环的困扰。消息已处理,类型错误,重新插入,然后重复此过程。为了避免这种情况,您可以添加一些重新插入策略,例如:指数延迟或有限次数的重新插入等。
但是有些疑问出现了:为什么您的服务消耗了本不应该的消息?也许您需要特定处理器的此消息?在这种情况下,您可以路由到合适的处理器。