java - Spring 集成 - 入站与出站 channel 适配器

标签 java spring spring-integration enterprise-integration

入站和出站 channel 适配器的根本区别是什么?

任何例子都会很有帮助。

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

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

谢谢!

最佳答案

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

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

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

(其中 -> 表示 channel )。

入站 channel 适配器有两种类型:

  • MessageProducers
  • 消息来源s

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

另一方面,

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

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

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

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

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

我希望这能解决问题。

关于java - Spring 集成 - 入站与出站 channel 适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29989581/

相关文章:

RabbitMQ 上的 Spring 集成和 AMQP 抛出异常 Method handleToken(byte[]) 找不到

java - 如何监控java中的空闲内存(包括缓冲区和缓存)?

java - Android SQLite 使用数组更新列

java - : com. debatz.mistergift.model.User.token 中的未知 mappedBy,引用属性未知 : com. debatz.mistergift.model.Token.user

java - 升级到 springboot 2.4.13 后 RequestMappingInfo.getMatchingCondition 抛出 IllegalArgumentException

java - Spring Integration - 如果值为空则中断流程

java - 如何生成具有正弦波和用户定义的持续时间和频率的 .wav 文件?

java - 在3中找到最大的数字,我在最后一部分遇到了粗体字的问题

java - spring-data-elasticsearch 使用带有嵌套对象的条件

java - Spring batch writer节流