Spring Integration关键案例与现实生活场景

这篇文章将总结Spring Integration(SI)的重要要点以及消息传递集成模式。 对于每个关键提示,我都会根据我的经验添加一个真实的示例。

分离器

一个。 它能做什么?

拆分器实际上是一种模式,它在某一点接收一条消息并将其拆分为多个。

b。 为什么对我有好处?

当您要将内容拆分为多个部分时,可以使用“拆分器”。 每个部分将异步处理内容。

C。 现实生活中的例子

在交易系统中,您可以进行交易请求。 该请求假定要执行以下几个步骤:(针对提供者执行该请求,将其记录在DB中,向客户端发送通知)

使用Splitter,您可以一次完成所有操作。

d。 SI示例:

路由器

一个。 它能做什么?

路由器是一种机制,当在某一点以基于内容的标准接收消息时,它将分派到特定的目的地。

b。 为什么对我有好处?

当您实际有不同的消息输入需要根据其内容进行不同的处理时,路由器非常方便。

C。 现实生活中的例子

因此,您的基础结构中具有通知功能。 每个客户选择的通知方式有所不同(电子邮件,短信,传真,Web服务等)。 通知请求被发送到客户端,并且基于请求内容,路由器将选择将请求处理到哪个组件:EmailService,SmscService,FaxService等。

d。 SI示例:

router id="notificationsRouter" input-channel="notificationInputChannel"

聚合器

一个。 它能做什么?

聚合器角色是等待一组相关消息。 在检索到所有预期的消息之后,它将能够合并它们并发送单个结果。 聚合器能够通过组相关性ID同时处理不同的组消息。

b。 为什么对我有好处?

通常,聚合器与拆分器一起工作。 将请求并行拆分到多个目标之后,您可能需要汇总所有目标结果并将最终结果作为输出发送。

C。 现实生活中的例子

在交易系统中,您从不同的提供商处获得不同的价格。 通常在所有提供商中选择最优惠的价格。 汇总器将能够汇总所有价格并发回最优惠的价格。

d。 SI示例:


过滤

一个。 它能做什么?

简而言之:“您想收到此消息吗?”

b。 为什么对我有好处?

您的组件可能会收到不同的消息。 您可以根据消息有效负载过滤消息,而不是处理不必要的消息(在EJB世界中,它与消息驱动的Bean选择器非常相似)。

C。 现实生活中的例子:

在交易系统世界中,您可以选择是否包含最终价格的佣金。 您的职责是仅向希望的客户增加佣金。 通过过滤器的该组件将仅接收基于佣金的价格。

d。 SI示例:

变压器

一个。 它能做什么?

转换器可以接收消息并将其有效载荷从一种类型转换为另一种类型。

b。 为什么对我有好处?

您可能已根据目的地将消息格式从一种转换为另一种。

b。 为什么对我有好处?

很多时候,我们以一种格式接收输入,然后需要在添加/修改/删除有效载荷内容之后将其解析或转换为其他格式(例如,从XML转换为String,反之亦然)。

C。 现实生活中的例子

因此,您有一个订购请求。 该请求需要以特定格式放置在数据库中,之后,需要以xml格式发送给客户端。 您可以转换有效载荷以适合您的目的地需求。

d。 SI示例:

SI中还有其他组件。 那些是最受欢迎的。

参考: IdanFridman.com博客上来自JCG合作伙伴 Idan Fridman的Spring Integration关键笔记以及现实生活场景 。

翻译自: https://www.javacodegeeks.com/2013/05/spring-integration-key-notes-with-real-life-scenarios.html

你可能感兴趣的:(java,数据库,python,大数据,spring)