我是 WSO2 ESB 的新手,我有以下情况需要处理。
我有一个消息处理器,它从队列中提取一些XML消息并将其发送到外部Web服务,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<messageProcessor class="org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor" messageStore="glisMessageStore" name="glisMessageProcessor" targetEndpoint="glisEndpoint" xmlns="http://ws.apache.org/ns/synapse">
<parameter name="client.retry.interval">100</parameter>
<parameter name="max.delivery.attempts">4</parameter>
<parameter name="member.count">1</parameter>
<parameter name="message.processor.reply.sequence">glisResponseSequence</parameter>
<parameter name="max.delivery.drop">Disabled</parameter>
<parameter name="interval">10</parameter>
<parameter name="is.active">true</parameter>
</messageProcessor>
glisResponseSequence.xml 包含一个非常复杂的行为,以 callout 中介结束,并将该消息发送到我的外部Web服务。
它工作正常但现在我还要处理速率限制概念。
当消息处理器调用 glisResponseSequence.xml 序列时,它以 callout 介体结束,该介体将消息发送到我的外部Web服务返回包含标题的响应:
X-Rate-Limit-Limit
X-Rate-Limit-Remaining
X-Rate-Limit-Reset
我可以使用这些标头指示消息处理器等待调用 glisResponseSequence.xml 序列或类似的内容(以避免向此发送过多请求外部网络服务)