代码之家  ›  专栏  ›  技术社区  ›  Kris Swat

网关中的Spring集成错误通道

  •  0
  • Kris Swat  · 技术社区  · 7 年前

    我有一个rest控制器,可以触发我的网关方法

    <int:gateway id="bGatewayService"
            service-interface="nd.l.eai.gw.BGateway"
            default-reply-channel="dest-channel"
            default-request-timeout="5000" default-reply-timeout="5000">        
            <int:method name="m1" request-channel="atbInChannel"/>
            <int:method name="m2" request-channel="btuInChannel"/>
        </int:gateway>
    

    应用程序运行正常。我没有错误通道[如上所述]

    我的问题是——错误通道的优势是什么?如果没有它,我会收到500个或错误的请求。我应该创建一个错误通道并包含在上面吗?

    我也使用默认的回复频道,可以吗?或者我应该为每个方法添加回复通道吗?我还有一个网关,有10种方法。

    0 回复  |  直到 7 年前
        1
  •  1
  •   Artem Bilan    7 年前

    你不需要 error-channel 补偿流 .如果只是抛出一个符合您的用例的异常,那么不要配置任何异常 错误通道 .

    在大多数情况下,我们不需要 reply-channel 还有,即便如此 default-reply-channel .当你不使用 output-channel 在流程的最后一个端点 replyChannel 标题将被使用。我们只需要这个 回复频道 对于需要某种pub-sub回复消息处理的用例,我们希望发送一条回复消息,不仅作为网关方法调用的返回,还作为其他流的返回。

    更多信息见文档: https://docs.spring.io/spring-integration/docs/current/reference/html/#gateway

        2
  •  1
  •   Gary Russell    7 年前

    这取决于你想做什么;错误通道允许您分析错误,并根据异常返回不同的结果。

    例如,你可以要求他们再次尝试一个暂时性错误,或者在请求中报告一个致命错误。

    通常不需要回复频道,除非你想做一些事情,比如添加一个有线点击来记录回复。事实上,该通道最终被桥接到请求中的replyChannel报头(这就是网关关联请求/回复的方式)。