java camel,Camel企业级集成模式--Aggregator

本文详细介绍了Apache Camel中的Aggregator模式,用于将分割后的消息重新组装。内容包括Aggregator模式的原理、配置要素(Correlation identifier、Completion condition、Aggregation strategy)、示例代码,以及如何使用HawtDB实现持久化。
摘要由CSDN通过智能技术生成

编辑推荐:

本文来自于csdn,本文详细介绍了Aggregator模式的原理,以及通过一个示例,完整的实现了利用Aggregator聚合多条消息,希望对您的学习有所帮助。

1、前言:

用了Aggregator这个模式几个月了,自己对于其中的原理一向不怎么上心,直到前些天项目中的一个突发问题引发了我的兴趣,于是开始探究Aggregator模式的原理,下面来和大家分享一下。

2、概述

Apache Camel总共提供了60种左右的企业级集成模式,有5种模式比较常见,分别是Aggregator、Splitter、Routing

Slip、Dynamic Router、Load Balancer,这几种模式也是JCF提供给我们使用的,其中Aggregator是最复杂的一种。下面,我们先了解一下这个模式的作用:主要用于将分割后的若干条输入消息重新组装成一条完整的输出消息,Aggregator的作用和Splitter的作用刚好对立。

3、详解

下面先通过一张图对整体有个大概的了解,如下:

65417ee4014d2e77411710b7b9d1998b.png

这张图中涉及到了3种模式,这也说明模式之间是可以组合使用的,从而形成一种新的模式,其中Aggregator模式将接收到的消息流和相关联的标识消息聚合成一条输出消息。下面来看一个简单的使用示例,如下:

5657906bc9aaa19969d42e04940c9b35.png

在上图中,3条消息被依次送入Aggregator,最后被聚合成了一个消息,要实现上图的功能,我们需要关注3个配置,并且这3个配置缺一不可,如果没有配置其中任意一个,在Camel启动的时候就会报配置缺失的错误,这3个配置如下:

Correlation identifier--一条表达式,决定哪个输入消息是属于一个组的。

Completion condition--一个断言或者是基于时间的条件,决定了什么时候输出聚合的结果消息。

Aggregation strategy--一种聚合策略,指定了通过何种方式来聚合成一条消息。

下面我们来看一个简单的例子,来实现字母的聚合,例如输入消息依次为:‘A’、‘B’、‘C’,输出消息为‘ABC’,通过这个简单的例子来让后面的流程好继续下去。如下图所示:

c07c402e47f6e108a119ef9b85798d4f.png

当第一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值