【问题标题】:MassTransit - Prioritize RabbitMQ Message on Routing SlipMassTransit - 在路由单上优先处理 RabbitMQ 消息
【发布时间】:2020-08-25 09:36:03
【问题描述】:

RabbitMQ 支持消息优先级:https://www.rabbitmq.com/priority.html

MassTransit 允许用户在配置端点和发送/发布消息时进行设置。

问题:在 MassTransit 中使用路由单时是否可以设置消息优先级?

我的问题:我们有一个屏幕可以安排项目或立即处理它们。如果安排好,可以批量处理项目。如果同时处理数百个项目,在屏幕上保存一条记录可能需要几分钟,因为消息会排到队列的末尾,这可能会导致糟糕的用户体验。

那么,如果无法设置优先级,这里有什么替代方案?

谢谢!

【问题讨论】:

    标签: rabbitmq masstransit routing-slip


    【解决方案1】:

    您最简单的选择?设置您的活动服务,以便它们托管两个端点,一个用于执行(任何东西,包括批处理),一个用于执行交互式,当它是一个交互式请求时您可以使用它们。当您构建传送单时,使用适当的队列来执行活动,然后您就可以开始运行了。批处理不会干扰,因为它位于一组单独的端点上。

    您的另一个选择要困难得多,并且会涉及创建发送中间件来查找 RoutingSlip 并检查一些值并设置优先级。

    【讨论】:

    • 感谢克里斯的回答。我对这种方法的问题是我想最大化队列并发消息限制,以便我们可以使用大部分服务器。如果我有 2 个队列,那将是不可能的。例如,假设我们的服务器一次可以处理 10 条消息。如果我有一个队列,我可以将此限制设置为 10。但是如果我有 2 个队列并且我将两个队列都设置为 10,它们将能够超过阈值。如果我将两者都设置为 5,它们将不会超过阈值,但我将拥有未使用的资源。这有意义吗?
    • 这确实有道理,祝您根据我给您的建议提出的任何方法都好运。
    猜你喜欢
    • 1970-01-01
    • 2012-05-31
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多