如何在WSO2 ESB 4.9.0中设置JMS代理的限制

如何在WSO2 ESB 4.9.0中设置JMS代理的限制,wso2,wso2esb,wso2carbon,Wso2,Wso2esb,Wso2carbon,当大量消息堆积在队列上时,WSO2 ESB 4.9.0中的MQ JMS代理面临一个问题 由代理调用的后端服务每秒只能处理50个请求,超过此速度,后端服务将失败 这里的问题是,当消息堆积在队列上(1000条消息)时,代理从队列读取所有消息并发送到后端服务&后端服务失败 是否可以在代理上设置任何设置来控制代理服务读取的消息 这里的主要问题是代理非常快速地从队列读取消息,并淹没后端服务。后端服务失败,因为它们不是为处理更高负载而设计的。如果您需要侦听JMS队列并希望以受控方式向后端服务发送消息,则必须

当大量消息堆积在队列上时,WSO2 ESB 4.9.0中的MQ JMS代理面临一个问题

由代理调用的后端服务每秒只能处理50个请求,超过此速度,后端服务将失败

这里的问题是,当消息堆积在队列上(1000条消息)时,代理从队列读取所有消息并发送到后端服务&后端服务失败

是否可以在代理上设置任何设置来控制代理服务读取的消息


这里的主要问题是代理非常快速地从队列读取消息,并淹没后端服务。后端服务失败,因为它们不是为处理更高负载而设计的。

如果您需要侦听JMS队列并希望以受控方式向后端服务发送消息,则必须使用和。

您可以在代理服务中定义参数:

<parameter name="transport.jms.ConcurrentConsumers">1</parameter>
<parameter name="transport.jms.MaxMessagesPerTask">1</parameter>
<parameter name="transport.jms.MaxConcurrentConsumers">1</parameter>
1
1.
1.
(根据您的需要调整这些价值观)

此外,如果您向后端服务发送消息,您可以选择使用call mediator with blocking=“true”以同步方式发送消息:在代理收到来自后端服务的响应之前,它不会将下一条jms消息出列。
另一方面,如果您使用send mediator,则它是异步的:当其他线程(回调)等待响应时,您的中介将继续,因此,您的代理将退出下一条jms消息的队列。通过设置以下属性,我们可以启用限制或控制发送到后端的消息


true 3

谢谢Jean。我尝试了您提供的属性,但没有成功。我的要求是,我想创建代理jms侦听器,每秒读取10个请求。我没有看到任何这样的属性可以设置在JMS PROXXE中,考虑ASKANA VIANDEAGE的答案:您的代理服务可以在商店中存储消息,并且一个采样消息处理器可以帮助您实现您的目标。是的,Asanka。我希望读取消息,比如每秒10个请求,这些请求需要传递给后端服务。基本上,我希望jms代理应该调用后端服务synchronoult,并且jms代理应该等待从Q读取消息,直到上一条消息完成