首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中使用Cassandra (GlassFish)

在Java中使用Cassandra (GlassFish)
EN

Stack Overflow用户
提问于 2011-09-15 01:18:36
回答 2查看 2K关注 0票数 3

我目前正在开发一个部署到GlassFish上的企业应用程序。我正在尝试从部署到EJB3.1的GlassFish中找出与cassandra后端通信的正确方式。我更喜欢用Pelops和Cassandra说话。

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

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

EN

回答 2

Stack Overflow用户

发布于 2011-10-18 18:09:34

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

抛开法律文字不谈,因为这两个库都是池化的,对我来说,它们肯定是属于资源适配器层的东西。我会担心EJB,它的生命周期由容器控制,并且可能相当短,它依赖于像连接池这样的资源,它的生命周期在某种程度上是独立的,应该更长。

也就是说,大多数EJB的实现都是相当宽松的,所以无论直接从EJB使用Pelops/Hector在架构上是正确的还是错误的,它都很可能会工作。

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

票数 2
EN

Stack Overflow用户

发布于 2011-10-18 16:27:33

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

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

https://github.com/rantav/hector

它是非常积极发展的。我从未见过在EJB中使用它,但我用过它,它非常可靠。但是,不要使用Pelops的开发方式。

我们在这里开发的是一个非常定制的应用程序,这就是为什么我们一开始就没有使用Hector的原因。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7420332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档