如何在WSO2ESB中配置ActiveMQ连接池



我们正在使用WSO2 ESB进行到ActiveMQ的直通代理。WSO2似乎会为每个请求使用一个新的连接,这会使我们在一台机器上的吞吐量低于预期(500多名并发用户)。在深入研究文档后,我们发现您可以使用JMSSender配置的缓存。这确实通过在生产者级别缓存(包括连接和会话缓存)来提高吞吐量,但缺点是,如果Activemq机器被反弹,WSO2将不会重新连接,为了使其重新连接,必须关闭缓存,因此使其对我们不可用。

我很惊讶在WSO2ESB中找不到任何ActiveMQ连接池设置。是不是真的没有任何针对带有WSO2ESB的ActiveMQ连接池的配置,或者我们缺少了一些明显的东西。创建自己的连接池工厂是这里唯一的选择吗?

我们的配置:WSO2 ESB 4.8.0在自己的机器上,ActiveMQ 5.9在自己的上

p.S我们知道对生产者和activemq的优化,并已经应用了它们,在broker上使用nio协议,在生产者和broker上配置传输级别参数,在同一台机器上同时使用vm:/WSO2和activemq,尽管这确实显著提高了吞吐量,但并没有让我们超越目标。我们真的需要弄清楚如何进行连接池。我们期望每秒处理10+k条消息,其中包含1.5k条消息的有效载荷。

谢谢你的帮助。

如果WSO2在生产者级别包含池,问题是如果它关闭,它会失去与ActiveMQ的连接,那么我建议您在配置ActiveMQConnectionFactory时检查是否使用了failover:传输。由库来可靠地重新连接。

就您的目标吞吐量而言,假设消息持续存在,10k消息/s听起来有点高。您应该测试ActiveMQ是否会在目标硬件上处理它,无论WSO2如何连接到它。有关详细信息,请参阅ActiveMQ性能模块用户手册。如果你做不到,有很多方法可以让你的表现达到这个水平,但那完全是另一回事。

最新更新