有什么方法(比如重试)来处理 WSO2 EI 6.4.0 中的 AWS SQS Sendmessage 失败场景?

Is there any way (like retry )to handle AWS SQS Sendmessage Failure scenario in WSO2 EI 6.4.0?

我正在使用 AWS SQS 连接器 (V1.0.7) 在 WSO2 EI 6.4.0 中执行 SendMessage 操作。

有时消息没有发布到 AWS SQS 队列,在下面提到的日志中得到一些 ERROR/WARNING 消息

日志中的错误代码:

Error_code = 101506Error_code = 101508

警告消息:

    [HTTPS-Sender I/O dispatcher-2]  WARN {org.apache.synapse.transport.passthru.Targe
tHandler} -  Connection closed by target host before receiving the response  Remote Address : host/ip

因此,每当发生故障时,调解都会转到 fault sequence ,我只是在寻找一些解决方案,例如 retry .

我可以在 sendMessage 模板代码中添加一些 endpoint timeout error handling 并尝试重建它吗?

否则在错误序列中我是否应该再次执行相同的 sendMessage 操作?

请告诉我可行的解决方案..

您是否尝试过使用消息存储和消息处理器来实现保证传递系统?您必须将消息发布到消息存储。消息处理器可以尝试 post 它到 SQS。如果失败,它将被添加到另一个故障转移消息存储。一段时间后,我们可以在另一个消息处理器的帮助下将消息添加到原始消息存储中。这样,它将不断重试直到成功。

https://docs.wso2.com/display/EI640/Guaranteed+Delivery+with+Failover+Message+Store+and+Scheduled+Failover+Message+Forwarding+Processor

如果此解决方案太复杂,您可以使用第二个选项,在故障序列中调用 sendMessage 操作。