【问题标题】:External Messaging in Spring IntegrationSpring 集成中的外部消息传递
【发布时间】:2018-01-13 20:59:41
【问题描述】:

我想问一下,为什么amqp/jms被实现为Inbound and Outbound Channel Adapters
它们的作用与Message Channel 相同,因此如果将它们实现为 MessageChannel,那么它可以很容易地用于不同的组件,例如直接在服务激活器中:

<integration:service-activator ref="receiver" method="receiveMessage" input-channel="jmsInputChannel"/>

在创建服务激活器的过程中,它会被映射到某个消息监听器,该监听器将被 JMS/AMQP 系统调用。
配置将直接在JMSMessageChannel 上完成。

有什么我想念的吗?因为在高层次上它看起来确实可以完成并且会简化 API。

【问题讨论】:

    标签: java spring spring-integration spring-jms spring-messaging


    【解决方案1】:

    【讨论】:

    • 是的,我是,谢谢 :) 你能告诉我用例场景,我应该在哪里使用 Channel Adapter 而不是 Message Channels 吗?
    • 当您有一个由外部系统填充的目标队列(入站)或只是发送到目标目的地并忘记(出站)时。您需要支持通道来支持您自己的应用程序中组件之间的持久性或集群中的分发。仅将通道用于单向逻辑是一种反模式
    • 为了清楚起见,您还应该在不同的 spring 集成应用程序之间使用适配器。正如 Artem 所说,可以使用基于持久性的通道在同一应用程序的实例之间分配工作,但不应使用它们在 应用程序之间分配工作。
    • 不明白为什么是反模式?消息通道负责将消息从一个地方移动到另一个地方。为什么管道的末端不能是不同的应用程序?
    • 嗯,你当然可以,但如果你在同一个应用程序中没有管道的另一端,那将会令人困惑。如果没有管道的另一部分,目前尚不清楚通道的用途是什么
    猜你喜欢
    • 1970-01-01
    • 2012-07-23
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多