【发布时间】:2015-04-20 12:53:33
【问题描述】:
我在没有 Masstransit 的情况下使用 RabbitMQ,每秒发送 10,000 条消息和 100 秒内发送 100 万条消息。
但是在将 Masstransit 与 RabbitMQ 一起使用后,我的机器上的性能非常低。
当发布/消费消息时,硬盘非常活跃(99% 的使用率),并且此进程的 CPU 活动几乎为 0%。
当使用此代码运行发布者/订阅者控制台应用程序时:
var bus = ServiceBusFactory.New(x =>
{
x.UseRabbitMq();
x.ReceiveFrom("rabbitmq://localhost/Example_Hello");
});
var message = new MyMessage() { Text = "hello", When = DateTime.Now };
for (int i = 0; i < 100; i++)
{
bus.Publish<MyMessage>(message, x => { });
}
在 6 秒内发布了 100 条消息,我不知道为什么很慢。
我的机器配置和软件版本是:
Windows 8.1 64 位
英特尔酷睿 i3 3.30GHz
内存 8GB
Visual Studio 2013 C#.Net 4.5.1
Erlang 6.3
RabbitMQ 3.4.4
捷运 2.9.9
RabbitMQ.Client 3.4.0
【问题讨论】:
-
仅供参考,MT 2.10 中添加了不等待 .NET 4.x 确认的功能。
-
感谢克里斯·帕特森先生的回答。现在我会使用它。
-
@MohammadRadmanFar:你在这里成功了吗?我刚刚在 mt 讨论组 (groups.google.com/forum/#!topic/masstransit-discuss/XiqSDnJzd8U) 上发帖,因为我找不到解决此问题的方法。
-
@ChrisPatterson:克里斯,你有机会看看这个并发表评论吗?提前致谢。
-
我看到的速度比你看到的要高得多。我怀疑还有其他东西让你慢下来。你有repro吗?您可以运行 MassTransit-Stress 应用程序来测试您的代理吞吐量吗?
标签: c# rabbitmq masstransit