Spring Integration
2020-12-30 11:33:33 0 举报
AI智能生成
spring EIP 框架梳理哦
作者其他创作
大纲/内容
Spring Integration
EIP
目标与原则
1.提供用于实现复杂的企业集成解决方案的简单模型。
2.在基于Spring的应用程序中使用并集成异步,消息驱动的功能。
3.更方便易用,使现有Spring应用更直观,增量式的功能。
组件松耦合,以实现模块化和可测试能力
框架应强制将业务逻辑和集成逻辑之间的关注点分离。
扩展点本质上应该是抽象的(但要在明确定义的边界之内),以促进重用和可移植性
主要架构
从垂直的角度看,分层体系结构促进了关注点的分离,并且层之间基于接口的协定促进了松散耦合。
消息驱动的体系结构增加了一个水平视角,但是这些相同的目标仍然很重要。正如“分层体系结构”是一种非常通用和抽象的范例一样,消息传递系统通常遵循类似的抽象“管道和过滤器”模型。
“过滤器”表示能够生成或使用消息的任何组件,“管道”在过滤器之间传输消息
Message
在SI中消息是任何Java对象的通用包装,并与框架处理该对象时使用的元数据结合
Header
消息头
保存通常需要的信息,例如ID,时间戳,关联ID和返回地址
消息头还用于将值传递到连接的传输器或从连接的传输器传递值
例如:当从接收到的文件创建消息时,文件名可以存储在标头中,以供下游组件访问
例如:如果邮件的内容最终将由出站邮件适配器发送,则上游组件可以将各种属性(来自,抄送,主题和其他属性)配置为邮件标头值
Payload
消息的效载荷,可以是任何类型
Message Channel
消息通道表示管道和过滤器体系结构的“管道”
生产者向通道发送消息,而消费者从通道接收消息。因此,消息通道将消息传递组件分离,并且还为侦听和监视消息提供了方便的点。
PollableChannel
与send方法一样,当接收到消息时,如果发生超时或中断,则返回值为null。
SubscribableChannel
基本接口是由将消息直接发送到其订阅的信道来实现MessageHandler的实例
常用于发送事件消息,其主要作用是通知
PublishSubscribeChannel
实现Message将发送给它的所有消息广播到其所有订阅的处理程序
QueueChannel
实现包装一个队列。与相比PublishSubscribeChannel,QueueChannel具有点对点语义
PriorityChannel
QueueChannel强制实施先入先出(FIFO)顺序,而PriorityChannel允许消息基于优先级的信道内进行排序
RendezvousChannel
此实现与十分相似QueueChannel,不同之处在于,它使用SynchronousQueue
发送者知道某个接收者已经接受了该消息
DirectChannel
具有点对点语义
它实现的是SubscribableChannel接口而不是PollableChannel接口
ExecutorChannel
是一个点至点的信道与DirectChannel一样的配置
这两种调度通道类型之间的主要区别在于,ExecutorChannel委托的实例TaskExecutor执行调度
FluxMessageChannel
是一种将消息发送到内部的org.reactivestreams.Publisher实现
Message Endpoint
Message Filter
消息过滤器确定是否将消息传递到输出通道。该方法可以检查特定的有效负载内容类型,属性值,消息头的存在或其他条件
Message Router
消息路由负责确定一个或多个通道(如果有)来接收消息。通常基于消息的内容或消息头中可用的元数据。消息路由用作服务激活器或其他能够发送接收消息的端点上静态配置的输出通道
Splitter
其职责是从其输入通道接收一条消息,将该消息拆分为多个消息,然后将每个消息发送到其输出通道
Aggregator
聚合器基本上是分离器的镜像,是一种消息终结点,可以接收多条消息并将它们组合为一条消息
Service Activator
用于将服务实例连接到消息传递系统的通用端点
必须配置输入消息通道,如果有返回值,那么还可以有输出消息通道
Channel Adapter
通道适配器是将消息通道连接到其他系统或传输的终结点
入站通道适配器端点将源系统连接到
出站通道适配器端点将a连接MessageChannel到目标系统
Endpoint Bean Names
Message Transformer
消息端点表示管道过滤器体系结构的“过滤器”
端点的主要作用是将应用程序代码连接到消息传递框架,并以非侵入方式进行
理想情况下,应用程序代码应该不了解消息对象或消息通道
0 条评论
回复 删除
下一页