Используя ActiveMQ 5, можно ли настроить брокера в памяти и сетевых подключениях?

У нас есть набор приложений, между которыми я хочу использовать JMS для обмена сообщениями. Прямо сейчас все наши приложения устанавливают TCP-соединения с брокером ActiveMQ. Можно ли заставить 15 или около того приложений, которые находятся на одном хосте, использовать соединения inVM или использовать форму общей памяти, в то время как оставшиеся 20 или около того приложений, которые находятся вне этого хоста, все еще используют TCP?

По сути, я хочу объединить брокера, настроенного с inVM, и брокера, настроенного с TCP. Могу ли я это сделать, или мне нужно выполнить настройку моста?


person Jay R.    schedule 14.11.2008    source источник


Ответы (1)


Соединения inVM работают только в том случае, если приложения находятся в одной JVM.

Если они находятся на одном компьютере, но в разных процессах, то лучшим выбором будет TCP. Большинство операционных систем будут использовать эффективные реализации TCP, так что вы фактически не будете подключаться к сети для связи между локальными процессами.

Обмен сообщениями основан на потоке, поэтому общая память не очень помогает с ActiveMQ. На самом деле это просто выбор TCP или VM, если ваше приложение находится в той же JVM, что и брокер.

person James Strachan    schedule 17.11.2008
comment
Я бы предпочел запускать большинство приложений на одной виртуальной машине, но некоторые из них должны быть на разных машинах. - person Jay R.; 18.11.2008