0

我有一个 java 应用程序(比如 A),它通过 TCP 套接字与应用程序(比如 B)通信。我的 java 应用程序是多线程的,最多可以处理 100 个线程。为了在 A --> B 之间进行通信,我们有 10 个套接字。

挑战-

  1. 连接池- 需要连接池机制来处理 n(比如 100)个线程(应用程序 A),通过 x(比如 10)个 TCP 套接字与应用程序 B 通信。

  2. 多线程- 两个线程如何访问同一个套接字,一一发送请求并取回映射到适当线程的响应。

  3. 多个请求- 两个线程是否可以同时在单个套接字上发送请求。

我们可以通过任何框架来克服这个挑战吗?可能吗?听说 Spring Integration/ApacheCamel/Local MQ 可以解决这个方案。任何例子。

4

2 回答 2

2

使用 Spring 集成:

  1. CachingClientConnectionFactory
  2. TcpOutboundGateway(与CachingClientConnectionFactory)。
  3. 协作出站和入站通道适配器

但是你必须做自己的请求/回复协作(通常基于消息中的某些内容);回复可能不会按照发送的顺序返回。由于没有执行该协作的标准方法,因此框架本身不支持它。

于 2017-03-31T12:47:46.710 回答
0

我能够通过 jPOS 解决上述问题。

jPOS 可以进行多路复用。它使用 ISOMessage 字段 11 和 41 来匹配请求和响应。

jPOS 还提供池化机制。

于 2017-04-18T15:19:05.793 回答