企业集成模式(Enterprise Integration Patterns, EIP)是解决企业应用集成(EAI)中常见问题的一系列设计模式,旨在规范应用间的数据流动、消息传递和流程协调。根据集成场景和功能,可分为以下主要类型:
一、消息传递模式(Messaging Patterns)
核心目标:定义应用间消息传递的基本机制,解决消息发送、接收和路由问题。
1. 点对点模式(Point-to-Point)
- 场景:单个发送者与单个接收者之间直接通信(如传统API调用)。
- 特点:耦合度高,适用于简单一对一交互。
2. 发布-订阅模式(Publish-Subscribe)
- 场景:消息发布者将消息广播到多个订阅者(如事件驱动架构)。
- 特点:解耦发送者与接收者,支持一对多通信。
3. 异步消息传递(Asynchronous Messaging)
- 场景:发送者无需等待接收者响应,通过消息队列实现非阻塞通信(如 RabbitMQ、Kafka)。
- 特点:提升系统吞吐量,支持削峰填谷。
二、消息路由模式(Message Routing Patterns)
核心目标:根据消息内容或规则,将消息路由到不同的目标系统或处理逻辑。
1. 内容基于路由(Content-Based Routing)
- 规则:根据消息内容(如字段值、JSON路径)决定路由方向(例:订单金额>1000元的消息路由至人工审核系统)。
2. 动态路由(Dynamic Routing)
- 规则:通过外部服务或配置动态获取路由目标(例:根据用户所属地区查询路由地址)。
3. 分支与聚合模式(Splitter & Aggregator)
- Splitter:将一条消息拆分为多条子消息并行处理(例:批量订单拆分为单个订单处理)。
- Aggregator:收集多条子消息结果并合并为一条消息(例:汇总多个供应商报价后返回给客户)。
4. 筛选器模式(Filter)
- 规则:根据条件过滤消息(例:仅处理状态为“已支付”的订单消息)。
三、消息转换模式(Message Transformation Patterns)
核心目标:解决不同系统间数据格式、协议或语义的差异问题。
1. 数据格式转换(Data Format Transformation)
- 场景:转换消息格式(如 XML ➔ JSON、CSV ➔ Avro),适配不同系统的解析要求。
2. 协议转换(Protocol Bridging)
- 场景:转换通信协议(如 HTTP ➔ AMQP、REST ➔ SOAP),连接异构系统。