聚集是生成和扇出从单条输入消息派生出的相关请求,并扇入相应的应答以产生单个、聚集的应答消息。
消息流接收到一个表示相关请求项的集合的初始请求,该初始请求被分割为适当个数的独立请求以满足初始请求的子任务。此过程称为扇出,且由包含聚集节点的消息流提供。
来自子任务的应答组合且合并为返回到原始请求者(或另一个目标应用程序)的单个应答以表明处理的完成。此过程称为扇入,且也由包含聚集节点的消息流提供。
您可以通过使用任何受支持的协议将消息从连接到代理的客户机应用程序发送到消息流来启动聚集;聚集的响应也可以通过使用所有这些协议发送到客户机应用程序。扇出消息流发出的消息和扇入消息流接收的响应必须是请求/应答消息。因此,您限制为使用 WebSphere MQ 企业传输方式(将消息发送到 MQInput 和 MQOutput 节点,以及从这些节点接收消息)进行连接的客户机应用程序,或者限制为使用其他受用户定义的输入和输出节点(符合请求/应答通信模型)支持的协议的客户机。
WebSphere Message Broker 提供了三个支持聚集的消息流节点:
当您在您的消息流中包含这些节点时,在消息流中并行地发出多个扇出请求。这与消息流的标准操作相对应,在标准操作中每个节点按顺序执行它的处理。
您也可以使用这些节点向代理环境之外的应用程序发出请求;消息可异步地发送到外部的应用程序或服务,从这些应用程序检索响应,且组合这些响应以向原始的请求消息提供单个响应。
这些节点也提供了改善响应时间的机会,因为可并行地执行慢响应,不必依次逐个执行每个慢响应。如果子任务可各自处理,且不必作为单个工作单元的一部分处理,可使用独立的消息流处理这些子任务。
您可以通过发出子任务请求到另一个应用程序(例如,使用 HTTPRequest 节点)并在 LocalEnvironment 中记录每个请求的结果,在不使用聚集节点的情况下设计和配置提供类似功能的消息流。每个子任务完成后,您可以合并来自 Compute 节点中的 LocalEnvironment 的结果,并创建用于传播到目标应用程序的组合响应消息。如果您这样做,所有子任务按顺序执行,且不能提供通过使用聚集节点您可以完成的并行操作的性能优势。
聚集样本和 航空公司订票样本中提供了使用聚集节点的聚集流的示例。聚集样本说明了简单四向聚集,而 Airline 预订样本则模拟了与航线预订服务相关的请求,并描述了与聚集流关联的技术。