В настоящее время мы пишем приложение, для которого ИТ-отдел уже приобрел оборудование. Их подход состоял в том, чтобы купить большое оборудование, на котором мы будем развертывать. Чтобы добавить больше обработки, они планируют добавить дополнительные серверы с идентичным программным обеспечением. Чтобы приспособить этот дизайн, мы используем Terracotta, чтобы обеспечить возможность запуска нескольких JVM, как если бы это была одна большая. Независимо от того, является ли это мудрым путем (в котором я до сих пор не убежден), с этой ситуацией я сталкиваюсь.
В любом случае, у нас есть часть приложения, которая использует стандартную очередь типа производитель / потребитель. С помощью Terracotta мы можем создать одну очередь, которая работает с несколькими JVM. Это довольно гладко и хорошо работает.
Но сейчас мы находим дополнительные возможности для запуска асинхронных процессов. Чтобы сделать всю нашу логику очередей более согласованной, мы рассматриваем возможность использования JMS для абстрагирования общей логики. Поскольку мы не собираемся использовать JMS в качестве удаленной очереди (по крайней мере, в обозримом будущем), мне интересно, добавляет ли JMS ненужную сложность.
Есть предложения или мысли? Должны ли мы просто продолжать строить очереди как параллельные структуры или рассматривать их как отдельные, потенциально удаленные объекты?