У меня есть модуль, который работает автономно в JVM
(без контейнеров) и взаимодействует с другими модулями через JMS
.Мой модуль является и производителем в одной очереди, и потребителем в другой очереди.Затем мне нужно кластеризовать этот модуль, как по причинам высокой доступности, так и по причинам рабочей нагрузки, и я, вероятно, собираюсь использовать Terracotta + Hibernate для кластеризации моих объектов.В настоящее время, когда мое приложение запускается, оно запускает поток (через Executors.newSingleThreadExecutor()
), который служит потребителем (я могу приложить фактический пример кода, если он уместен и необходим).
Что я понял из прочитанных здесь вопросов, так это то, что если япросто запустите мой модуль на N
различных JVMs
, тогда N
будут созданы разные подписчики и , каждое сообщение в очереди будет доставлено N
подписчикам.Я хотел бы, чтобы только один из них (скажем, тот, который в данный момент не важен) обрабатывал это сообщение, и поэтому в действительности я могу обрабатывать N
сообщений одновременно.
Какможно / нужно ли это сделать?Я не в курсе?
Кстати, я использую OpenMQ
в качестве своей реализации, но я не знаю, насколько это актуально.
Спасибо за любую помощь