У меня есть промежуточное программное обеспечение на основе 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. я уже
- Увеличены настройки одновременных потребителей и использован пустой бизнес-процессор.
- Настроил JAVA_XMX и PERMGEN
для ускорения транзакции.
Согласно веб-консоли Active MQ, существует очень много сообщений, ожидающих обработки по сценарию 500TPS. Думаю, одним из решений является масштабирование ActiveMQ. Поэтому я хочу использовать несколько брокеров в кластере.
Согласно http://fuse.fusesource.org/mq/docs/mq-fabric.html (раздел «Топологии»), настройка ActiveMQ в режиме кластеризации подходит для непостоянного сообщения. ИМХО, правда не годится, ибо все работающие брокеры используют один и тот же файл хранилища. Но как насчет разделения файла хранилища? Теперь это возможно, верно?
Кто-нибудь может это объяснить? Если это невозможно, как лучше всего сбалансировать нагрузку постоянного сообщения?
Спасибо