【问题标题】:MassTransit publish very slow performance compared to RabbitMQ client publish与 RabbitMQ 客户端发布相比,MassTransit 发布的性能非常慢
【发布时间】:2021-03-15 07:01:49
【问题描述】:

我正在使用带有 RabbitMQ 传输层的 MassTransit 7。

当我使用 MassTransit 总线(无论是队列已经绑定的直接交换还是扇出交换)发布消息时,交换速率在 1000-1500 m/s 之间,而我使用 RabbitMQ 客户端发布消息时为 15k-25k m/s .

我还在发布时丢弃等待任务,因此它不会等待消费者确认:

_ = bus.Publish(new Request() { Timestamp = now });

我想知道是我遗漏了什么,还是无法配置 MassTransit 以进行高速发布。

【问题讨论】:

    标签: c# .net-core rabbitmq masstransit


    【解决方案1】:

    您可以使用MassTransit's Benchmark 衡量性能,这应该可以让您对发布性能有所了解。

    作为参考,我通常每秒收到 16k+ 条消息,在没有发布者确认的情况下是非持久的。这是在运行 RabbitMQ 的本地 docker 映像上,从控制台运行基准测试。

    这取决于 您对消息执行的操作,而不是使用 RMQ 客户端原始“发送一个微小的有效负载测试”。

    【讨论】:

    • 谢谢,如果我错了,请纠正我。我之前使用默认值运行基准测试,默认值有 100 个客户端,这意味着不同线程中的多个发布者。当一个发布者(1 个客户端)使用时,消息速率在 700-800 之间,非常慢。
    • 这两个基准场景都没有针对“尽可能快地从一个线程发送”进行优化。
    猜你喜欢
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 2011-05-04
    • 2016-06-12
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多