Мы находимся в процессе перевода нашей платформы .NET с использования MSMQ на ActiveMQ.Ежедневно мы прокачиваем более 30 миллионов постоянных сообщений, поэтому пропускная способность и пропускная способность имеют для нас решающее значение.Способ, которым настроены наши зависимые от MSMQ приложения, заключается в том, что они сначала записывают в локальные / частные очереди.Затем у нас есть локальный сервис, который направляет эти сообщения в соответствующие удаленные очереди для обработки.Это обеспечивает быструю начальную запись в очередь / запись (да, мы также можем использовать асинхронное постановка в очередь), и сообщения не теряются, если удаленные серверы недоступны.
Мы собирались использовать ту же парадигму для ActiveMQ, но теперь мы решили перейти к использованию виртуальных машин с хранилищем NAS для большинства наших серверов приложений.Это значительно снижает производительность записи каждого сообщения, поскольку оно направляется в NAS, и я чувствую, что мне нужно переосмыслить наш подход к организации очередей.Я хотел бы знать, что считается наилучшей практикой использования ActiveMQ с постоянными потребностями в высокой пропускной способности.Стоит ли рассматривать использование выделенных серверов очередей (это не виртуальные машины)?Но это будет означать, что все записи из приложения идут напрямую по сети.Как мне справиться с требованиями высокой доступности?
Любые предложения приветствуются.