[英]WSO2 EI with RabbitMQ - how to reject a message?
使用 WSO2EI 6.4.0 和 RabbitMQ 作为入站传输,如文档RabbitMQ AMQP Transport 中所述。
似乎运行良好,尽管只涵盖了“晴天”场景。
需要保留消息顺序,但我们不能只是将消息重新排回队列。 如果后端服务不可用,我想回滚消息并尝试稍后处理消息。 据我所知,我们需要发送nack响应。
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="test_mgs_processing_proxy"
startOnLoad="true"
statistics="disable"
trace="disable"
transports="http,rabbitmq,local">
<target>
<inSequence>
<log level="full">
<property name="step" value="test_mgs_processing_proxy"/>
</log>
<property name="OUT_ONLY" value="true"/>
<!-- simulate an exception has occured -->
<property name="SET_ROLLBACK_ONLY" scope="axis2" value="true"/>
<payloadFactory media-type="xml">
<format>
<step xmlns="">test_mgs_processing_proxy</step>
</format>
<args/>
</payloadFactory>
</inSequence>
</target>
<parameter name="rabbitmq.exchange.name">amq.topic</parameter>
<parameter name="rabbitmq.queue.name">app_a</parameter>
<parameter name="rabbitmq.connection.factory">AMQPConnectionFactory</parameter>
<description/>
</proxy>
设置FORCE_SC_ACCEPTED
会使消息被视为已消费。 即使我们设置了SET_ROLLBACK_ONLY
属性,消息SET_ROLLBACK_ONLY
保持在 NACK 状态并且不会重新发送(至少不会很快)。
问题 - 使用 RabbitMQ AMQP 传输,有没有办法配置未处理消息的重新传递间隔?
似乎这是 WSO2 EI 6.4.0 中的一个问题。 https://github.com/wso2/product-ei/issues/4739
当您使用入站端点时,问题不存在。 只有当您使用带有 rabbitmq 传输的代理时才会出现问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.