我们有一个事件处理系统,它将处理以200 eps(每秒事件数)直接从源发送到处理程序进程的事件。队列和消息发送是事务性的。在事件生成器和处理程序进程之间添加NSB分发器可将此速率从200 eps降低到70 eps。分配器盒上的磁盘使用率和CPU也变得非常高。
使用商业版本的NServiceBus,版本2.6.0.1505。
是否有其他人看到此行为或有任何建议?
答案 0 :(得分:0)
您可以使用的一件事是MSDTC所在的位置。您可以让您的员工使用与分发服务器相同的MSDTC,从而降低事务级别并加快提交速度。我建议如果你这样做,你集群MSDTC以防止故障。
假设您在数据库上运行,您可以对数据库进行分片以处理不同的数据集。您还可以将DB更靠近工作人员(移动到同一台机器)。
我还会检查数据库提供程序和MSMQ的设置,因为在超时等方面有一些调整方法。请注意,在应用某些设置时需要权衡,但听起来您更喜欢最快的吞吐量。
还有很多其他系统级别的东西要检查,我假设你已经浏览过所有这些项目(网络/磁盘/ RAM /等)。