2014-01-23 25 views
-1

例如,我開發一個連接池作爲服務器,而另一個應用程序中我想使用池中現有的連接,我怎樣才能得到它?他們在兩個進程?並有不同的生活圈?如何通過兩個過程傳輸對象?

+1

您無法序列化任何類型的連接。這個概念沒有開始有意義。 -1 – EJP

回答

2

如果您正在討論套接字連接(即您的連接池處理tcp連接),那麼您無法將該連接從一個進程傳遞到另一個進程。但是,您可以從第二個進程連接到服務器,並將信息傳遞給第二個進程(實質上充當代理)。

通常,您需要一種方法讓兩個進程進行通信。如果它們具有不同的生命週期(你提到的),並且當它在線時需要一個進程從另一個進程接收消息,那麼你還需要一個持久化和排隊機制。根據您的需要,有許多不同的方法來實現這一點。以下是一些示例: -

  1. 在服務器上,將信息寫入套接字並在另一個進程上讀取它。您將使用其中一個Java消息傳遞類,並可能串行化對象信息。這是非持久性的,但可能是最容易開始的。
  2. 在服務器上,將信息寫入文件,並通過指定的信號量,文件或其他方式表示有信息需要處理。
  3. 在服務器上,將消息寫入有保證的傳遞隊列(例如Amazon或Azure隊列),以便在可用時由其他進程拾取消息。