LINUX.ORG.RU

Коммуникация между JVM

 , , ,


1

2

Есть сервер (процесс, крутится на отдельной JVM) на java, получающий некоторую инфу извне. Этот сервер должен быть запущен (примерно) всегда. К нему, в свою очередь, должны подключаться клиенты (другие процессы, другие JVM), брать у него инфу и, возможно, отдавать команды на пересылку данных обратно (или же пересылать дату вовне самостоятельно, я пока не решил, но это и не важно). На локальность всего этого бардака я бы не расчитывал. Клиенты и сервер могут располагаться физически на разных железяках.

Также надо иметь возможность управлять этим всем мышой, тоесть в вебе. Тыкать в кнопки и вкл/выкл сервер и по отдельности клиенты. Отчеты о работе клиентов тоже надо видеть в вебе.

Вопрос: чем это в java организовывается. Я нагуглил Jetty и KryoNet. Туда копаю?

★★★★

Обмениваться сообщениями через JMS. Мы делали похожую систему на Weblogic Cluster.

java_util_Random ★★ ()
Ответ на: комментарий от unt1tled

Чё фу-то? Обоснуй! Чтоб мышкой тыкать, без энтерпрайза не обойтись.

Не хочешь ЕЕ, используй Akka remote actors тогда, как выше советовали. Еще RMI и JMX есть, но это изврат для твоей задачи.

java_util_Random ★★ ()
Ответ на: комментарий от java_util_Random

Чё фу-то? Обоснуй!

Раздутый кусок говна, в котором копаться хочется меньше всего на свете и пользы в итоге как от куска говна. В любом случае, оно для меня оверкилл. Это ведь как новую платформу изучать.

unt1tled ★★★★ ()

rabbitmq как очередь для общения, чтобы пускать и смотреть логи - это вообще нечто иное (щас вылезут докерофилы)

subwoofer ★★★★★ ()
Ответ на: комментарий от unt1tled

Раздутый кусок говна,

Тогда будь мужиком, не юзай жабу совсем, блеАтЪ!!! :))))

anonymous ()
Ответ на: комментарий от unt1tled

Да не то, чтобы. Короче, я так до сих пор и не понял. Работаю в конторе, где это активно применяется - но в таких объёмах кода до сих пор не разобрался - потому не знаю, насколько выстрелил. :) Думаю, что выстрелил, раз не выкинули.

BattleCoder ★★★★★ ()

Если не Java EE, то только akka.

anonymous ()

Для старта бери Apache Camel. Посылает-принимает сообщения, причем транспорт может быть любой - JMS, HTTP, XMPP и куча других.

Память любит, насколько держит нагрузки - не уверен, но работает очень неплохо.

В качестве транспорта используй ActiveMQ - чистая ява, JMS, доступен embedded-вариант. Чем меньше запускать приложений, тем лучше.

Твой вариант - есть центр, забирает данные - подходит под описание Polling Consumer. http://camel.apache.org/polling-consumer.html

Hello, world для кэмела: https://examples.javacodegeeks.com/enterprise-java/apache-camel/apache-camel-... .

anonymous ()

Обмениваться сообщениями по протоколу, который тебе подходит.

  • Для синхронных вызовов сделать REST API на Spring MVC или EJB.
  • Для асинхронных - JMS (например, погугли Spring JMS или EJB JMS). В качестве сервера очередей - ActiveMQ. Можно посмотреть на апи Apache Camel.

Для включения и выключения можно написать свой небольшой велосипед за неделю: у каждого application server есть отдельная варка с HTTP API (тот же Spring MVC или EJB), которая запускает команды для systemd. Каждый аппликейшен сервер имеет соответсвующий systemd юнит.

Чтобы смотреть логи в вебе, можно опять же написать свой велосипед на три строчки, который будет (с помощью Spring MVC или EJB, нуныпонел - с помощью них делается ВСЁ) формировать логи и засылать на клиент (для статичных логов простой HTML, для динамических - все что угодно, начиная с тупого HTML+jQuery, и заканчивая AngularJs и ReactJs).

Короче, за две недели можно всё навелосипедить для управления.

stevejobs ★★★☆☆ ()
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от subwoofer

хм, почему ты в джава-мире предлагаешь использовать не родное решение (activemq), а что-то из эрлангомирка (rabbitmq)?

stevejobs ★★★☆☆ ()

Запустить кластер - его можно через админку кликать мышкой. Общения приложений сделать через какой нить JMS или какой-нить RPC.

ya-betmen ★★★★★ ()

Аутистов полон тред. Юзай HTTP+JSON с минимумом монструозных библиотек. А когда тебе понадобится акка и прочие жемеесы - то это будет из собственного опыта использования, а не от специалистов лора.

anonymous ()
Ответ на: комментарий от anonymous

Предлагаешь общаться JVM посредством http запросов?

unt1tled ★★★★ ()

Потыкал akka. Мне кажется, это несколько не то, о чем я спрашивал. А для очередей оказывается еще и отдельный сервер нужен =\

unt1tled ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.