Обмен данными между JVM - PullRequest
       1

Обмен данными между JVM

7 голосов
/ 18 сентября 2010

Сегодня мне задали этот вопрос об обмене данными из потока t1, который выполняется в одном jvm 1, в поток 2, работающий в другом jvm 2, и аналогично другому потоку t3 в jvm 3. После некоторой домашней работы я сказал следующее ответьте, пожалуйста, дайте мне знать, если у вас есть лучший и эффективный ответ.

  1. Сериализация
  2. java nio Stream
-------------                                                   -----------------
jvm 1                  PASS THE DATA TO ANOTHER THREAD IN A         JVM2  

                         NOTHER JVM
                         ===============>>>>>  
tHREAD T1                                                          tHREAD T2
--------------                                                  -------------------

1 Ответ

11 голосов
/ 18 сентября 2010

Я думаю, это зависит от контекста вашего приложения.У вас есть несколько вариантов:

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