我的应用程序的瓶颈是使用MassTransit通过MSMQ发送和接收消息。发送和接收都发生在同一个应用程序中,但通常有太多的消息无法使用内存队列。
以下是我的简单队列设置:
对于我的实验来说,MSMQ当前有大约100万条消息,我们没有向其中推送任何新消息。在
通过这些信息,我们只能从MSMQ中获取每秒150到200条消息,在没有网络延迟的情况下,我希望它至少每秒可传递1000条消息。每个消息都小于2kb。
如何加快MSMQ将消息传递给MassTransit应用程序的速度,同时保持队列强制执行的消息排序?
以下是我的简单队列设置:
messageBus = ServiceBusFactory.New(sbc =>
{
sbc.UseMsmq();
sbc.VerifyMsmqConfiguration();
sbc.UseMulticastSubscriptionClient();
sbc.ReceiveFrom("msmq://localhost/msg_queue");
sbc.Subscribe(subs =>
{
subs.Handler<EventMessage>(msg => Enqueue(msg));
});
});
对于我的实验来说,MSMQ当前有大约100万条消息,我们没有向其中推送任何新消息。在
Enqueue()
中,我们没有做任何工作,只是记录发送消息所需的时间。通过这些信息,我们只能从MSMQ中获取每秒150到200条消息,在没有网络延迟的情况下,我希望它至少每秒可传递1000条消息。每个消息都小于2kb。
如何加快MSMQ将消息传递给MassTransit应用程序的速度,同时保持队列强制执行的消息排序?