我目前需要一个高性能的java存储机制。
这意味着:
1) 我有 10,000 多个具有 1 - 多关系的对象。
2)对象每 5 秒更新一次,在系统出现故障的情况下,最新的更新仍然存在。
3) 对象需要在合理的时间内(1-5 秒)可查询。 (即:给我所有具有此时间戳的对象或给我这些位置边界内的所有对象)。
4)对象需要在各种 Glassfish 安装中可用。
目前:
我一直在使用 JMS 来分发对象,使用 Hibernate 作为 ORM,并使用 HSQLDB 来提供所需的可恢复性。
我对性能不是很满意。特别是其中的 JMS 部分。
在做了一些 Stack Overflow 研究之后,我想知道这是否是更好的解决方案。请记住,我对 Terracotta 给我的功能没有任何经验。
我会使用 Terracotta 在系统中分布对象,而其他东西需要提供“查询”这些对象属性的能力。
这听起来合理吗?它会满足这些性能限制吗?我还应该考虑哪些其他解决方案?
最佳答案
我知道这不是你问的,但是,你可能想先从 HSQLDB 切换到 H2 . H2 是一个相对较新的纯 Java DB。它是由编写 HSQLDB 的同一个人编写的,他声称性能要好得多。我现在已经使用它一段时间了,我对它非常满意。它应该是一个非常快速的转换(添加 Jar、更改连接字符串、创建数据库),因此值得一试。
总的来说,我相信在用不同的架构重写应用程序之前尽量充分利用我拥有的东西。尝试分析它以首先确定瓶颈。
关于java - Terracotta + Compass = Hibernate + HSQLDB + JMS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/720143/