21

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

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

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

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

谢谢!

4

2 回答 2

36

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

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

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

(其中->代表一个通道)。

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

  • MessageProducers
  • MessageSources

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

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

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

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

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

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

我希望这能解决问题。

于 2015-05-01T17:54:24.293 回答
6

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

于 2015-05-15T06:01:32.783 回答