我有一个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种方法的网关。
如果您不需要一些补偿流程,则不需要error-channel
。如果您的用例只能提出异常,则不要配置任何error-channel
。
在大多数情况下,即使是default-reply-channel
,我们也不需要reply-channel
。当您在流的最后一个端点中不使用output-channel
时,replyChannel
标头将使用。我们只需要reply-channel
来用于使用某种类型的Pub-sub回复消息处理的用例,我们想在其中发送回复消息,不仅作为Gateway方法调用的返回,还要发送其他一些流程。p>更多信息在文档中:https://docs.spring.io/spring-integration/docs/current/referent/referent/html/#gateway
这取决于您要做什么;错误通道允许您根据异常分析错误并返回不同的结果。
例如。您可以要求他们再次尝试暂时错误或报告请求中致命错误的问题。
通常不需要回复频道,除非您想执行诸如添加电线以记录回复之类的事情。实际上,该频道最终在请求中被桥接到回复渠道标题(这是网关关联请求/答复的方式。