在JVM之间共享数据

时间:2010-09-18 19:26:33

标签: java jvm

今天我被问到这个问题,关于从一个jvm 1中运行的线程t1到另一个jvm 2中运行的线程2的数据共享,以及与jvm 3中的另一个线程t3共享数据后,我告诉了以下内容回答。如果你有更好更有效的答案,请告诉我。

  1. SERIALIZATION
  2. java nio Stream
  3. -------------                                                   -----------------
    jvm 1                  PASS THE DATA TO ANOTHER THREAD IN A         JVM2  
    
                             NOTHER JVM
                             ===============>>>>>  
    tHREAD T1                                                          tHREAD T2
    --------------                                                  -------------------
    

1 个答案:

答案 0 :(得分:11)

我认为这取决于您的应用程序的上下文。您有多种选择:

  • 序列化可以工作,但如果您的代码发生变化,很可能会中断。这可能会导致数据丢失。
  • 要在多个应用程序之间共享数据,您可以使用数据库。这是我心目中最好的选择之一,因为您的数据将是结构化的。
  • 此外,您还可以使用带格式的文本文件。只需选择如何格式化数据,将其放入文件,然后从另一个应用程序中读取文件。
  • 如果您的JVM位于不同的计算机上,则可以尝试使用套接字。这样,您的应用程序就可以通过网络进行通信。
  • 如果您的服务器可以像对象的继电器一样,您也可以使用消息服务器(我正在考虑使用JMS)。