我们正在使用WSO2 ESB进行直通代理到ActiveMQ。看来WSO2将为每个请求使用一个新连接,这使得我们在一台机器上的吞吐量低于500(并发用户数)。在深入了解文档之后,我们发现您可以使用JMSSender配置进行缓存。这确实通过缓存生产者级别(包括连接和会话缓存)来提高吞吐量,但缺点是如果Activemq机器被退回,那么WSO2将不会重新连接,以使其重新连接,然后必须转换缓存关闭,因此使它对我们不起作用。
我很惊讶无法在WSO2 ESB中找到任何ActiveMQ连接池设置。是否没有任何与WSO2 ESB的ActiveMQ连接池配置,或者我们遗漏了一些明显的东西。创建自己的连接池工厂是唯一的选择吗?
我们的配置: WSO2 ESB 4.8.0在它自己的机器上,ActiveMQ 5.9在它自己的机器上
P.S 我们知道producer和activemq的优化,并且已经应用它们,在代理上使用nio协议,在生产者和代理上配置传输级参数,在同一台机器上使用vm:/同时使用WSO2和ActiveMQ,尽管这确实显着提高了吞吐量但是没有不要带我们过去。我们真的需要弄清楚如何进行连接池。我们期望处理10 + k消息/秒,其中包含1.5k消息的有效载荷。
感谢您的帮助。
答案 0 :(得分:0)
如果WSO2包含生产者级别的池,并且问题是如果它关闭则失去与ActiveMQ的连接,那么我建议您在配置{{failover:
时检查是否已使用ActiveMQConnectionFactory
传输1}}。图书馆可靠地重新连接。
就目标吞吐量而言,假设持久消息,10k msgs / s听起来有点高。无论WSO2如何连接到目标硬件,您都应该测试ActiveMQ是否会在目标硬件上处理它。有关详细信息,请参阅ActiveMQ Performance Module User Manual。如果你做不到,就有办法让表演达到那个水平,但那是另一回事。