and*_*eas 14 java jpa jdo datanucleus cassandra
有四个高级API可以访问Cassandra,我没有时间尝试它们.所以我希望找到一个可以帮助我选择合适人选的人.
我会写下我对他们的发现:
优点:
缺点:
优点:
缺点:
优点:
缺点:
优点:
缺点:
由于我对RDMS,Hibernate,JPA,Spring以及对EJB不再那么新闻充满信心,我的第一印象是,去kundera本来是正确的选择.但在阅读了一些有关JPO,DataNucleus的帖子后,我不再确定了.对于DataNucleus,学习曲线应该是陡峭的(对于经验丰富的JPA开发人员?),我不确定,我是否应该去实现它.
我主要担心的是插件的状态.还有JDO和Datanucleus-Cassandra-Plugin的论坛支持/帮助,因为据我所知,它并没有广泛传播.
有人在那里,谁有经验,有一些framworks已经可以给我一个提示?也许混合策略也是有意义的.如果(如果存在的话)JDO不灵活/足够/不足以满足我的需求,那么回归到一个更容易的pelops或hector的API?这可能吗?是否有类似于JPA的方法来获取SQL连接和获取/放置数据?
在阅读了一下之后,我发现了以下附加信息:
Datanucleus-Cassandra-Plugin基于pelops,也可以访问以获得更大的灵活性,更高的性能(?),这应该用于具有大量数据的列族,JDO/JPA访问应仅用于"管理"数据,性能不是那么重要,数据量不是很大.
对于hector或pelops来说,这仍然是个问题.
pelops为它后来的Datanucleus-Cassandra-Plugin可扩展性,或者hector,它对节点hanldling有更多的支持.
我尝试了大多数这些解决方案,并找到最好的hector.即使你有一些问题,你总能找到在freenode的#cassandra中编写hector的人.就我而言,代码更加成熟.在cassandra客户端中,最关键的部分是连接池管理(因为所有客户端通过thrift执行大多数相同的操作,但连接池是使高级客户端滚动的原因).在那种情况下,我会投票给hector,因为我现在在生产中使用它已经超过一年没有明显的问题(一旦我发现并发送了一封关于它的电子邮件就解决了1个重新连接问题).
我仍在使用cassandra 0.6.