系统集成Spring Integration提供了基于Spring的EIP(Enterprise Integration Patterns,企业集成模式)的实现,主要解决不同系统之间的交互问题,通过异步消息驱动来达到系统交互时系统之间的松耦合,由Message、Channel、Message EndPoint组成。
1、消息体(payload):任何数据类型,如XML、JSON、Java对象等
2、消息头(header):表示的元数据就是消息体的内容
1、顶级接口MessageChannel,其子接口:
1)PollableChannel:可轮询
2)SubscribeChannel:可订阅
2、常用消息通道
1)PublishSubscribeChannel:允许广播消息给所有订阅者
2)QueueChannel:允许消息接收者轮询获得信息,用一个队列接收消息,队列容量可配
3)PriorityChannel:可按照优先级将数据存储到队列,依据消息头中priority属性
4)RendezvousChannel:确保每一个接收者都接收到消息后再发送消息
5)DirectChannel:默认消息通道,允许将消息发送给一个订阅者,然后阻塞发送直到消息被接收
6)ExecutorChannel:可绑定一个多线程的task executor
3、通道拦截器ChannelInterceptor:用来拦截发送和接收消息的操作
1、Channel Adapter:通道适配器,是一种连接外部系统或传输协议的端点,可分为入站和出站,单向的
2、Gateway:消息网关,提供了双向的请求/返回集成方式,也分为入站和出站
3、Service Activator:可调用Spring的Bean来处理消息,并将处理后的结果输出到指定的消息通道
4、Router:路由,可根据消息体类型、消息头的值、定义好的接收表 作为条件,决定消息传递到的通道
5、Filter:过滤器,类似于路由,决定消息是否可以传递给通道
6、Splitter:拆分器,将消息拆分成几个部分单独处理,拆分器处理的返回值是一个集合或者数组
7、Aggregator:聚合器,将多个消息合并为一个消息。
8、Enricher:消息增强器,增加额外的消息到已有的消息中,又分为消息体增强器和消息头增强器
9、Transformer:转换器,对获得的消息进行一定的逻辑转换处理
10、Bridge:连接桥,可以将两个消息通道连接起来