在此博客文章中,我们将介绍一些企业集成模式。 这些是旨在解决集成挑战的已知设计模式。 阅读此书后,您将可以设计集成解决方案。
EIP(简而言之)是已知的设计模式,可为应用程序集成过程中遇到的问题/问题提供解决方案。 我想到的一个显而易见的问题是,在集成应用程序时我们需要处理哪些问题/问题?
- 应用程序本质上是异构的,它们使用不同的语言开发,在不同的OS上运行,理解不同的数据格式。
- 应用程序发生了很大的变化,它们进行了升级,并且它们的API随时间而变化。
- 他们需要以可靠和安全的方式通过网络交换数据。
EIP分为以下类别。 邻近这些,还指定了用于引用这些模式的符号。
整合风格:
文件传输
在这种模式下,应用程序使用文件交换信息,文件在某个公共位置共享。
共享数据库
在这里,应用程序使用通用的数据库架构。
讯息传递
实体在想要交换数据的应用程序之间进行中介。 它的工作是接受生产者的消息,然后传递给消费者。 消息传递有助于在集成应用程序时实现松散耦合。 它将连接的应用程序与随时间变化的API更改/升级隔离。
RPC
在此应用程序中,使用接口公开其功能,调用者需要知道这些并使用存根调用它们。 除了RPC以外,以上三种机制本质上都是异步的。
下一组模式讨论消息系统:
信息
消息的结构由所使用的消息传递系统很好地定义。 它通常包含标题和正文部分。
讯息频道
通道是产生消息的媒介。 它们是通常的队列和主题。
管道和过滤器
当需要在将消息传递到消费者应用程序之前对其进行处理时,此模式很有用。
讯息路由器
当发送方应用程序不知道接收方在哪个通道上时
已订阅。 在两者之间使用路由器在网络上传递消息。 正确的频道。 它具有路由规则,该规则决定消息的位置 应交付。
讯息翻译器
翻译器用于更改消息的格式。 在接收方应用程序理解XML的同时,发送方应用程序可能会发送CSV数据,在这种情况下,我们需要在接收方应用程序之前执行转换器,以完成CSV到XML的转换。
消息端点
端点是帮助应用程序与之交互的组件
消息传递系统。它们具有用于与之通信的内置协议
消息传递系统。它们是消息产生者和消费者。
通道模式:这些模式讨论消息传递通道的属性。
对等2对等
向单个使用者传递消息的渠道。 例子是一个队列
发布订阅
向所有订阅用户广播消息的频道。 主题属于发布订阅性质。
死信频道
用于移动无法处理的消息的通道。 消费者无法理解或消息过期的情况。 从监视和管理的角度来看,这很重要。
讯息桥
这些是桥接不同消息传递系统的通道适配器。 考虑有两种企业系统的情况,一种使用Mircosoft的MQ,而另一种使用IBM的MQ服务器。 在那里,您需要一个可以连接这些桥梁的桥梁。
保证交货
持久性通道用于保证消息传递。 万一消息系统崩溃,它将丢失内存中存在的所有消息。 因此,通常会备份通道的持久性存储,其中存储了通道中的所有消息。
消息构造模式:这些模式用于指定消息的意图。 接收者收到消息后该怎么办?
命令讯息
这些指定接收方应调用的方法或功能。 考虑使用XML的情况,根节点可以指定方法名称,而子元素可以指定方法调用的参数。
文件讯息
当发送方传递数据但不知道接收方应如何处理时。
活动讯息
发件人发送有关其末尾发生的更改的通知消息。
在这里,接收者可以选择忽略它或对其做出反应。
要求回覆
在这种情况下,发送者希望得到回复。 消息可能由两部分组成,一部分包含请求,另一部分由接收者填充,即响应。
相关标识符
如果响应是异步接收的,则用于关联
响应及其相应的请求。
路由模式
基于内容的路由
检查消息以确定正确的通道。 使用XML的地方,规则是用XPath编写的。
讯息筛选器
当接收方仅对具有某些属性的消息感兴趣时,则需要应用过滤器。 此功能通常随消息传递系统内置。
分离器
如果消息批量到达。 需要使用拆分器将消息分解为可以单独处理的部分。
聚合器
聚合器的作用与拆分器相反。 它关联并合并类似的消息。
转型模式
内容丰富
扩充器负责向消息中添加其他信息。
如果不存在所有用于处理消息的数据,则需要这样做。
内容过滤
内容过滤器执行相反的操作,即从邮件中删除不需要的数据。
归一化
规范化器负责转换到达不同位置的消息
格式转换为通用格式。 您的应用程序需要具有接受能力 JSON,XML,CSV等格式的数据,但是处理逻辑只能理解XML,在这种情况下,您需要使用规范化器。
端点模式
交易客户
交易客户有助于与外部交易服务进行协调。
邮件调度程序
消息分派器是接收者将到达的消息分派给工作人员的一种模式。 工人负责处理消息。
事件驱动的消费者
在此,接收者在消息传递系统上注册一个操作;
在收到消息后,消息传递系统将调用该操作。
系统管理模式:这些模式指定了有效监视和管理系统的方式。
车辆改道
顾名思义,将更改消息的路径以执行诸如验证,日志记录等活动。这种额外的处理是基于控制的,出于性能原因可以将其关闭。
丝锥
在这里,消息被复制到通道,随后被检索以进行检查或分析。
留言库
当消息从接收者传递到处理单元时,整个消息或消息的一部分(标头或消息主体的某些属性)都存储在中央位置。
要深入了解更多信息,请访问eaipatterns.com,它已经详细阐述了这些模式。 在接下来的博客文章中,我们还将研究Apache Camel,它为许多这些模式提供了实现。
参考: NS.Infra博客上我们JCG合作伙伴 Abhishek Jain的企业集成模式简介 。
翻译自: https://www.javacodegeeks.com/2012/11/introduction-to-enterprise-integration-patterns.html