【发布时间】:2013-07-24 18:16:33
【问题描述】:
我正在研究 NServiceBus v4.x 的概念验证实现。
现在我有两个订阅者和一个发布者。
发布者每秒可以发布超过 500 条消息。它运行良好。
订阅者 A 在没有分销商/工人的情况下运行。这是一个单一的进程。
订阅者 B 与一个为 N 名工人供电的分销商一起运行。
在我的测试中,我遇到了一个创建和发布 100,000 条消息的端点。我在离线订阅者的情况下发布。
订阅者 A 每秒处理稳定的 100 条消息。 拥有 2 个以上工作人员(2、3 或 4 个结果相同)的订阅者 B 难以在所有工作人员中达到每秒 50 条消息总数。
在我的场景中,工人(我将每个工人增加到 40 个线程)似乎正在等待分发者给他们工作。
我是否遗漏了一些可能导致分配器受到限制的东西?所有总线都运行无限制的开发许可证。
系统信息: 英特尔酷睿 i5 M520 @ 2.40 GHz 8 GB 内存 SSD硬盘
更新 08/06/2013:我已将系统部署到一组服务器。我正在经历同样的结果。我添加的每台带有工作器的服务器都会降低订阅者的性能。
订阅者 B 在一台服务器上有一个分发服务器,另外还有两台用于工作人员的服务器。使用订阅者 B 和一台具有活跃工作人员的服务器,我每秒遇到约 80 条消息/事件。在额外的物理机器上添加另一个工作人员会将其减少到每秒约 50 条消息。此外,这些是“虚拟消息”。除了通过 log4net 记录消息之外,处理程序中实际上没有发生任何逻辑。关闭日志不会提高性能。
建议?
【问题讨论】: