关于NServiceBus配置文件

关于NServiceBus配置文件,nservicebus,Nservicebus,我一直在试图找到提高nservicebus代码性能的方法。我搜索并偶然发现了这些配置文件,您可以在运行/安装nservicebus主机时设置这些配置文件 目前,我们正在按原样运行nservicebus主机,我了解到,默认情况下,我们使用的是可用配置文件的“Lite”版本。我还从这个链接中学到: 有集成和生产配置文件。文档并没有说太多-有人尝试过生产配置文件并注意到nservicebus性能的改进吗?特别影响从队列中消费消息的速度?NSB配置文件之间的一个主要区别是它们如何处理订阅存储 lite

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

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


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

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

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

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

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


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

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

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

继续向上扩展,然后可以使用分发服务器进行负载平衡工作。同样,这需要许可证,但您可以根据需要添加更多节点。上述所有机会也适用于此拓扑