我使用easynetq 驱动程序为rabbitmq 编写了一个简单的发布\订阅工具。然而,这种可能性似乎很可怕。我发送带有日期时间字段的消息,并测量订阅者接收它的时间。
队列延迟 = 到达订阅者的日期时间 - 以秒为单位的原始日期时间
假设队列应该是 FIFO。我注意到随着时间的推移,队列的延迟大大增加。我无法解释结果。任何类似的经历。
消息大小约为 200Kb,订阅者中的预取计数设置为 5。发布者确认已开启。
我注意到 EasyNetQ 存在一些性能问题,并在他们的 Github 项目页面中报告了这些问题。但是,我已经有几个月没有收到他们的回复了,所以他们可能对调查没有兴趣。下面是发布n条消息时发布/订阅的时间消耗图表,其中n = 1, 5, 10, 50, 100, 500。随着消息速率的增加,延迟也会增加。
这些性能影响是我们从 EasyNetQ 迁移到 的原因之一,这是一个RawRabbit
具有类似于 EasyNetQ:s 的 API 的 vNext 兼容框架。这可能对您的项目值得一试?如果您遇到类似的性能问题RawRabbit
,您可以自由注册问题,我会看看它,因为我是主要作者之一。
希望这可以帮助!