ejb-3.0 - 在 Java EE (GlassFish) 中使用 Cassandra

标签 ejb-3.0 cassandra java-ee-6 glassfish-3 jca

我目前正在开发部署到 GlassFish 的企业应用程序。我试图找出从已部署到 GlassFish 3.1 的 EJB 中与 cassandra 后端通信的正确方法。我更愿意使用 Pelops 与 Cassandra 交谈。

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

更具体地说,我应该考虑为 Cassandra 编写 JCA 连接器吗?使用通过 Pelops 与 cassandra 对话的单例 EJB?直接在我的 EJB 中使用 pelops? (尽管我认为您不应该在 ejbs 中创建套接字连接)完全是其他东西?

最佳答案

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

撇开法律条文不谈,因为这两个库都进行池化,所以对我来说它们绝对像是属于资源适配器层的东西。我会对 EJB 感到紧张,EJB 的生命周期由容器控制,并且可能很短,卡在像连接池这样的资源上,其生命周期在某种程度上是独立的,应该更长。

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

如果我有时间,我会编写一个资源适配器来包装这些库中的一个或另一个。然而,为了追求微不足道的实际返回,这将是一项相当大的资源投资。

关于ejb-3.0 - 在 Java EE (GlassFish) 中使用 Cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7420332/

相关文章:

java - 在 EJB 容器中执行 IBM DB2 存储过程时出错

java - 消息驱动 Bean-何时使用

java - 处理 MDB 中的连接错误

java - 如何使用 HttpResponse 检查响应正文是 SOAP 消息还是 XML 消息或 XSD 文档还是 WSDL 文档

java - 使用 CDI 的性能影响

java - ScheduleExpression 和增量

apache-flex - 无法从 FLEX (BlazeDS) 调用 EJB

mysql - 如何使用 cassandra 中另一个表的选择插入到 cassandra 表中?

cassandra - DataStax Cassandra 似乎很昂贵,是否有在生产中使用 Apache Cassandra 的最佳实践配置?

algorithm - 如何在考虑性能的情况下在 Cassandra 3.0 中对多对多关系进行建模