0

我一直在努力寻找提高 nservicebus 代码性能的方法。我搜索并偶然发现了这些配置文件,您可以在运行/安装 nservicebus 主机时设置这些配置文件。

目前我们按原样运行 nservicebus 主机,我读到默认情况下我们使用可用配置文件的“Lite”版本。我也从这个链接中了解到:

http://docs.particular.net/nservicebus/hosting/nservicebus-host/profiles

有集成和生产配置文件。文档并没有说太多 - 有没有人尝试过生产配置文件并注意到 nservicebus 性能的改进?特别影响从队列中消费消息的速度?

4

2 回答 2

0

除非您自己调整日志记录,否则我们已经看到基于减少日志记录的巨大改进。读取队列的性能是相同的。由于队列是本地的,因此您不会从运输中获得太多收益。我会看看调整你的处理程序和底层基础设施。您可能想查看调整 MSMQ 并查看您正在使用的磁盘等。另一个地方是查看分布式事务是如何工作的,假设您正在使用需要它们的远程数据库。

增加处理时间的另一个选择是增加使用队列的线程数。这将需要许可证。如果许可证不是一个选项,您可以运行单个线程端点的多个实例。这需要您根据消息类型或其他内容对您的工作进行分片。

继续扩大规模,您就可以开始使用 Distributor 来进行负载平衡工作。同样,这将需要许可证,但您可以根据需要添加更多节点。上述所有机会也适用于此拓扑。

于 2012-04-27T12:51:23.150 回答
0

NSB 配置文件之间的一个主要区别是它们如何处理订阅的存储。

lite、集成和生产配置文件允许 NSB 配置它的可靠性。例如,lite 配置文件对所有发布/订阅注册使用内存订阅存储。这是一个问题,因为为了在 lite 配置文件中注册订阅者,发布者必须已经在运行(因此发布者可以将订阅者列表存储在内存中)。这意味着如果发布者因任何原因崩溃(或脱机),所有订阅信息都会丢失(直到每个订阅者重新启动)。

因此,如果您在开发人员机器上运行并且想要快速测试您的服务如何交互,那么 lite 配置文件是很好的选择。但是,它只是不适合其他环境。

集成配置文件将订阅信息存储在本地队列中。这对于简单的环境(如 QA 等)很有用。但是,在高度分布式的环境中,将订阅信息保存在数据库中是最好的,因此是生产配置文件。

因此,为了回答您的问题,我认为通过更改配置文件您不会看到性能提升。如果有的话,从 lite 配置文件更改为其他配置文件之一可能会降低性能(因为您会产生访问队列或数据库存储的成本)。

于 2012-04-27T08:48:33.770 回答