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