从JBoss EAP到不同IP的多个出站TCP连接

从JBoss EAP到不同IP的多个出站TCP连接,tcp,jboss,jca,Tcp,Jboss,Jca,我正在开发以域模式运行在JBossEAP 6.4上的应用程序。我需要处理从服务器到不同硬件设备的多个(多达1000个)并行TCP连接。 连接必须在服务器端打开,并保持90秒。所有连接使用相同的端口和协议,但目标IP地址不同 我想知道JCA适配器是否适合这个用例。我应该为每个设备创建特殊的激活规范,还是使用JCA资源适配器以外的东西?这个问题有点老了,但JCA不是一种流行的技术,因此,尽管您可能已经实现了所有这些功能,但对它的一些了解还是很有用的 首先,JCA是编写连接器的规范,它本身不是连接器实

我正在开发以域模式运行在JBossEAP 6.4上的应用程序。我需要处理从服务器到不同硬件设备的多个(多达1000个)并行TCP连接。 连接必须在服务器端打开,并保持90秒。所有连接使用相同的端口和协议,但目标IP地址不同


我想知道JCA适配器是否适合这个用例。我应该为每个设备创建特殊的激活规范,还是使用JCA资源适配器以外的东西?

这个问题有点老了,但JCA不是一种流行的技术,因此,尽管您可能已经实现了所有这些功能,但对它的一些了解还是很有用的

首先,JCA是编写连接器的规范,它本身不是连接器实现。如果您需要应用程序与外部TCP协同工作,则由您来实现连接器

JCA是否适合您的特殊需求完全取决于“不同硬件设备”的性质。资源适配器被设计为在每个服务的基础上使用,并具有可能的连接池。即,该特定适配器将触发的所有连接应具有非常相似的性质,并且可以互换。然而,JCA适配器在这个范围之外也有明显的优势,特别是在EJB环境中。EJB对您的代码施加了非常严格的限制:没有锁定、线程生成等。如果没有这些东西,实现TCP I/O可能会非常困难。JCA及其线程自由(MDB能够在激活时提供EJB友好的作用域,尽管有底层线程源)

结论:如果你在EJB环境中工作(或者如果你能在可预见的将来这样做),你应该考虑使用JCA来进行TCP网络。如果您在JavaEE堆栈上使用的是Spring支持的环境,那么可以忽略这样一项复杂的技术,而坚持使用一些纯粹的Netty网络

如果您选择继续使用JCA,请考虑检查当前正在维护的JCA。这是建立在Netty stack的基础上的,对你来说可能是一个好的开始。您还可以将其用作如何构建自己的实现的想法来源