我有一个基于 Apache Camel 的中间件,它执行如下事务:
from("amq:job-input")
to("inOut:businessInvoker-one") // Into business processor
to("inOut:businessInvoker-two")
to("amq:job-out");
目前它工作得很好。但我无法扩大规模,比如说从 100 TPS 到 500 TPS。我已经
- 提高了并发消费者设置并使用了空的 businessProcessor
- 配置 JAVA_XMX 和 PERMGEN
以加快交易速度。
根据 Active MQ Web 控制台,在 500TPS 场景中等待处理的消息非常多。我想,解决方案之一是扩大 ActiveMQ。所以我想在集群中使用多个代理。
根据http://fuse.fusesource.org/mq/docs/mq-fabric.html(“拓扑”部分),以集群模式配置ActiveMQ适用于非持久消息。恕我直言,确实不合适,因为所有正在运行的代理都使用相同的存储文件。但是,分离存储文件呢?现在有可能吧?
有人可以解释一下吗?如果不可能,负载平衡持久消息的最佳方法是什么?
谢谢