【问题标题】:Spring Integration reply to PublisherSpring Integration 回复 Publisher
【发布时间】:2020-11-03 21:40:48
【问题描述】:

我在 Spring Integration 中使用 DSL 实现了 2 个流程:

  • REST -> AMQP -> 消费者 -> 服务
  • AMQP -> 消费者 -> 服务

第一个流程只是一个 HTTP 消息 Publisher,用于无法直接发布到 AMQP 的客户端。 当Service中的消息处理失败时,如何让Publisher知道?

我正在查看 Publisher ConfirmsService Acks 模式与 DirectChannel,以便 Publisher 可以同步收到错误消息,如果我理解正确的话。然而 这将阻止 Publisher,直到 Service 返回(或抛出异常)。 Spring Integration 中有哪些选项(因为它基于 EIP)来处理应该通知 Publisher 消息处理失败而不被阻止的情况?这也是一个设计问题。

【问题讨论】:

    标签: spring spring-integration spring-integration-dsl enterprise-integration spring-integration-amqp


    【解决方案1】:

    REST -> AMQPoutboundGateway -> AmqpInboundGateway -> Service

    通过使用网关,出站网关将阻止等待服务的“成功”回复。

    向入站网关添加错误通道;如果服务失败,将调用错误流,您可以配置该流以将失败返回给调用网关。

    如果您不想阻塞,可以使用异步出站网关,但是您需要一些其他机制来将结果返回给调用者。

    【讨论】:

    • 使用异步出站网关将结果返回给调用者的任何模式?
    • Websocket 或 Spring WebFlux(如果客户端使用的是响应式 REST 客户端,例如 Spring WebFlux)。
    猜你喜欢
    • 2016-11-24
    • 2018-11-22
    • 1970-01-01
    • 2022-12-01
    • 2016-02-03
    • 1970-01-01
    • 2016-01-16
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多