2014-01-23 27 views
-1

例如,我开发一个连接池作为服务器,而另一个应用程序中我想使用池中现有的连接,我怎样才能得到它?他们在两个进程?并有不同的生活圈?如何通过两个过程传输对象?

+1

您无法序列化任何类型的连接。这个概念没有开始有意义。 -1 – EJP

回答

2

如果您正在讨论套接字连接(即您的连接池处理tcp连接),那么您无法将该连接从一个进程传递到另一个进程。但是,您可以从第二个进程连接到服务器,并将信息传递给第二个进程(实质上充当代理)。

通常,您需要一种方法让两个进程进行通信。如果它们具有不同的生命周期(你提到的),并且当它在线时需要一个进程从另一个进程接收消息,那么你还需要一个持久化和排队机制。根据您的需要,有许多不同的方法来实现这一点。以下是一些示例: -

  1. 在服务器上,将信息写入套接字并在另一个进程上读取它。您将使用其中一个Java消息传递类,并可能串行化对象信息。这是非持久性的,但可能是最容易开始的。
  2. 在服务器上,将信息写入文件,并通过指定的信号量,文件或其他方式表示有信息需要处理。
  3. 在服务器上,将消息写入有保证的传递队列(例如Amazon或Azure队列),以便在可用时由其他进程拾取消息。