弹簧集成 - 入站与出站通道适配器

入站和出站通道适配器之间的根本区别是什么?

任何例子都会非常有帮助。

我已经回顾了Spring文档,这种“方向”区别对我来说并不清楚。我支持配置了出站通道适配器的应用程序,但我发现出站标签的行为与直觉相反。此适配器获取一个外部文件,然后将其引入到应用程序中,我们在其中解析该文件并保留数据。

这与这个问题类似,但我想更广泛地关注通道适配器,并希望获得更多反馈!

谢谢!


答案 1

通道适配器用于单向集成(网关是双向的)。

具体而言,入站适配器处于流的开头,出站适配器终止流。流通常被渲染(并且在概念上被认为是从左到右流动)...

inbound-c-a->someComponent->someOtherComponent->outbound-ca

(其中表示通道)。->

有两种类型的入站通道适配器:

  • MessageProducers
  • MessageSources

MessageProducers被称为“消息驱动”,即它们一旦启动,就以完全异步的方式单方面生成消息;例如 JMS 消息驱动适配器、TCP 入站通道适配器、IMAP 空闲(邮件)通道适配器等。

MessageSource另一方面,s被轮询 - 带有一些触发器会导致框架向源请求消息;触发器可以是固定速率,cron表达式等。示例包括 (S)FTP 适配器、邮件入站适配器 (POP3.IMAP)。poller

出站适配器的示例包括邮件出站适配器 (SMTP)。

网关是双向的(请求/回复)。

入站网关是某些外部系统发送请求和Spring Integration回复的地方。

出站网关是Spring Integration发出请求和一些外部系统回复的地方。

我希望这能把事情弄清楚。


答案 2

进出都是相对方向,它必须有一个基础。在spring集成中,基础是Spring集成框架(可以看作消息总线),适配器将消息放入其中,适配器从中取出消息。


推荐