哪些因素会影响NServiceBus消息处理的速度?

时间:2013-10-21 12:39:31

标签: nservicebus

我有一个简单的NServiceBus架构,其中许多从属服务定期向单个主服务器报告。

但是,主服务器无法足够快地处理消息 - 它们在未处理的MSMQ中堆叠。

我有哪些选项可以加快主人的消息处理速度?

1 个答案:

答案 0 :(得分:2)

单个端点的速度受以下因素影响:消息处理线程数,底层硬件(主要是磁盘和CPU绑定),所选传输(某些传输速度比其他传输速度快),事务级别,参与是否存在DTC,底层传奇或持久性存储(ravendb,sql ...),您在处理程序中调用的所选数据库或IO绑定操作,您选择的IoC以及最终的业务逻辑/处理程序代码设计。

所以这些是你必须考虑的选择。您现在可以尝试通过在端点上添加更多线程和更强大的硬件(i.ex.SSD)来调整垂直扩展,或者通过向游戏中添加更多计算机并且最终您选择MSMQ的分发者,john提到水平扩展。但是,根据您的非功能性要求,您还需要考虑底层基础架构。例如,您是否可以牺牲交易保证以获得更高的性能?如果答案是肯定的,那么您可以调整事务级别并禁用DTC。或者甚至更多地用更高性能的交换运输。您认为这需要考虑很多,但如果没有关于您的非功能性要求和SLA的更多信息,我必须坚持这个通用的答案。