Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ejb 3.0 在JavaEE中使用Cassandra(GlassFish)_Ejb 3.0_Cassandra_Java Ee 6_Glassfish 3_Jca - Fatal编程技术网

Ejb 3.0 在JavaEE中使用Cassandra(GlassFish)

Ejb 3.0 在JavaEE中使用Cassandra(GlassFish),ejb-3.0,cassandra,java-ee-6,glassfish-3,jca,Ejb 3.0,Cassandra,Java Ee 6,Glassfish 3,Jca,我目前正在开发一个部署到GlassFish的企业应用程序。我正试图找出从部署到GlassFish 3.1的EJB中与cassandra后端通信的正确方法。我更愿意用佩洛普斯和卡桑德拉说话 免责声明:我不熟悉JavaEE以及企业应用服务器和EJB背后的概念;本项目的目的之一是学习这些主题。这超出了这个问题的范围,因为我真的只是希望被指出最佳实践的正确方向,或者我应该去哪里寻找最佳实践;到目前为止,谷歌在这个话题上并没有太大的帮助/一致性 更具体地说,我应该考虑为cassandra编写一个JCA连接

我目前正在开发一个部署到GlassFish的企业应用程序。我正试图找出从部署到GlassFish 3.1的EJB中与cassandra后端通信的正确方法。我更愿意用佩洛普斯和卡桑德拉说话

免责声明:我不熟悉JavaEE以及企业应用服务器和EJB背后的概念;本项目的目的之一是学习这些主题。这超出了这个问题的范围,因为我真的只是希望被指出最佳实践的正确方向,或者我应该去哪里寻找最佳实践;到目前为止,谷歌在这个话题上并没有太大的帮助/一致性


更具体地说,我应该考虑为cassandra编写一个JCA连接器吗?使用通过Pelops与cassandra对话的单例EJB?直接在我的EJB中使用pelops?(虽然我认为您不应该在EJB中创建套接字连接)完全是另外一回事吗?

我们正在开发一个类似的应用程序,我现在工作的地方,即使我们没有实现EJB,我们也会在Glassfish 3.1中部署一个后端,在内部我们创建了一个与Cassandra对话的小型库

目前,连接和使用Cassandra最常用的库是Hector:

这是非常积极的发展。我从未见过它在EJB中使用,但我使用了它,它非常可靠。但不知道Pelops是如何开发的

我们在这里开发的是一个非常定制的应用程序,适合我们的需要,这就是为什么我们最初没有使用Hector


只要您在EJB中使用客户机套接字,就应该是安全的,EJB上的限制是针对应由应用服务器处理的服务器套接字。但是如果您有其他需要,您应该编写JCA。

EJB规范禁止EJB打开服务器套接字,但不允许打开套接字。但是,它也禁止EJB创建线程。Pelops(或Hector)是否创建线程来处理其池

撇开法律条文不谈,因为这两个库都进行了池化,所以它们肯定感觉像是属于我的资源适配器层的东西。我会对EJB感到紧张,它的生命周期由容器控制,并且可能很短,它依赖于一个资源,比如一个连接池,它的生命周期有些独立,应该更长

也就是说,EJB的大多数实现都是相当宽容的,因此无论直接从EJB使用Pelops/Hector在体系结构上是否正确,它都很可能工作

如果我有足够的时间,我会编写一个资源适配器来封装其中一个库。然而,为了追求微不足道的实际回报,这将是一项巨大的资源投资