设计消息流时,内置节点的灵活性和丰富性通常表示存在多种方法可完成处理并由此获得所需的最终结果。但是,您还可以发现这些不同的解决方案所传递的性能不同的,如果这是重要的注意事项,您必须在设计时不光要考虑功能还要考虑性能。
有两种方法可以让您的应用程序了解性能:
- 响应时间。这表明消息流能多快地处理各条消息。这受您如何设计您的消息流的影响很大。这在本主题中有进一步的讨论。
- 吞吐量。这表明在给定时间内消息流能处理多少条特定大小的消息。主要受配置和系统资源因素的影响,因此在优化消息流吞吐量中与其他域配置信息一起进行了讨论。
有几个方面的因素影响消息流响应时间。但是,当您创建和修改您的消息流设计以得到满足您特定的商务需求的最佳的结果时,还必须考虑到最终的消息流的复杂程度。最高效的消息流不一定是最容易理解和维护的消息流;可对可用解决方案进行尝试以找到最符合您需求的解决方案。
会影响消息流响应时间的几种因素包括:
- 您在消息流中包含的节点个数
- 每个节点需要一些处理开销,因此请仔细考虑消息流的内容(包括子流的用法)。
在消息流中使用尽可能少的节点;您在消息流中包含的每个节点都会增加代理中的开销。在单个流内节点的个数有上限。该限制受系统资源管理,特别是堆栈大小方面。
有关堆栈大小的更多信息,请参阅开发消息流的系统注意事项。
- 持久和事务性消息的用法
- 消息流处理期间,持久消息会保存到磁盘。如果您能指定消息在输入和/或在输出上是非持久的,便可避免这种情况。如果您的消息流仅处理非持久消息,检查节点的配置和消息流自身;如果您的消息是非持久的,事务性支持可能是不必要的。有些节点的缺省配置强制事务性;如果您更新这些属性并重新部署消息流,可能会改善响应时间。
- 消息大小
- 较大的消息需要花较长的时间进行处理。如果您能将大消息分割成较小的信息块,则您能够改善消息流处理它们的速度。大型消息传递样本说明如何最小化消息流的虚拟内存需求以提高消息流处理潜在大型消息时的性能。
有关消息流性能的 developerWorks 文章中提供了更多有关提高消息流性能的信息。