【发布时间】:2015-09-16 01:31:17
【问题描述】:
在我的上一个项目中,我将 MassTransit (2.10.1) 与 RabbitMQ 一起使用。 在某些情况下,生产者可以向队列发送大量消息。
例如 - 用户设置了对其联系人列表的批量通知 - 在某些情况下,该列表可能多达 100000 个联系人。这将为每个联系人发送一条消息到队列(我需要跟踪每条消息)。现在因为 - 据我了解 - 消息正在按入口顺序处理,该用户正在阻塞队列很长时间,而另一个用户可能已经做了一件简单的事情,例如向自己发送测试消息,等待处理结束。
我考虑过为常规的 VS 批量操作分离队列,但这仍然不能解决小批量(有几十个联系人的用户等待有几十万个用户的用户)的问题,并且会导致额外的维护。
对我来说理想的解决方案 - 我认为 - 将涉及以这样一种方式操纵路由,即消费者将处理来自同一用户的 x 条消息,移动来自下一个用户的 X 条消息,而不是再次移动,而不是返回到队列的开头,直到处理完所有消息。
这可能吗?有没有更好的解决方案?
提前致谢。
【问题讨论】:
标签: rabbitmq masstransit