我们正在使用 Libgdx/Netty 开发一款 2D MMORPG 太空射击游戏,但我们遇到了无法解决的数据问题。
- 如果我们使用 JPA 和 RDBMS,我们就可以实现 ACID 并简化数据管理代码
- 如果我们使用 Spring 的 JDBC 宽度支持,我们可以提高速度,但会使数据管理代码变得复杂
- 我们没有 NoSQL 开发经验,但是速度优势(这一点至关重要)会不会太大以至于我们应该放弃简单的查询
我们陷入困境,请帮助我们做出决定。
最佳答案
- 您当然意识到 JPA 使用 JDBC。
- Spring 可以像 JPA 一样轻松地实现 ACID。我不知道你所说的“速度”优势是什么。发展速度?交易速度?为什么Spring会使数据管理代码变得复杂?这又是一个不正确的说法。
- 您询问 NoSQL 的速度是多少?发展?运行? NoSQL 没有 ACID。如果这对你很重要,你为什么要考虑它? NoSQL 意味着“非关系型”。您的数据是相关的吗?如果是,您为什么考虑 NoSQL?
你不能通过谈论技术和猜测来决定性能问题。唯一的方法是对它们进行基准测试并获取您真正关心的交易的一些真实数据。
编写基于接口(interface)的 DAO,使用每种候选技术进行实现,并衡量实际结果。这就是如何决定使用哪种持久性技术。
你最熟悉哪一个?如果没有人了解 NoSQL,就不要使用它。如果您不了解 JPA,请不要使用它。 Spring JDBC 模板允许您使用事务编写自定义 SQL。如果您已经很了解关系数据库和 Spring,为什么不直接使用它呢?
关于java - MMORPG 中的 JPA、JDBC 与 NoSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15649084/