现在我们有了一个带有Spring Data JPA(Hibernate)的Spring Boot 2上带有PostgreSQL数据库的Java项目。
对新体系结构的要求:在N台计算机上,我们有工作场所。每个工作场所使用具有不同配置的同一程序(用于重新分发数据库的已配置客户端)。电脑数量不多- 数量为10/20台电脑。数据库必须是可伸缩的(可以将大量数据存储在约1/2 Tb的磁盘上)。每天可以从一个工作场所将多达一百万行插入数据库。每个工作场所都使用重新分配的数据库- 这意味着每个节点必须能够读取/写入彼此修改的数据。并根据数据做出决策,并在运行时由另一个工作场所修改(事务)。数据存储(磁盘数据库存档)必须能够存档和复制为备份快照。必须使用Spring Data JPA 2将项目移植到新架构,并使用liquibase移植数据库。在Windows / Linux上运行。
快速概述向我展示了当前最受欢迎的重新分发的FREE数据库:1)Redis 2)Apache Ignite 3)Hazelcast
我需要帮助来理解架构描述系统的方式。首先,我尝试使用redis和ignit。Redis易于启动- 但它的工作方式类似于简单的IMDG(在内存数据网格中)。但是我需要将所有数据存储在持久数据库中(在磁盘上,例如点燃持久性)。有没有办法在现有的PostgreSQL数据库中使用redis?Postgres与所有节点同步,Redis在内存缓存中使用每个工作场所生成的新数据。每10分钟刷新一次磁盘数据。1)这可能吗?怎么样?
另外,我尝试使用Ignite-但我的项目在spring boot 2上运行。Spring data2。Ignite的最新发布版本是2.6,而spring data 2支持仅在apache ignite 2.7中出现!2)我必须每晚下载2.7版本,但是如何在我的项目中使用它?(需要安装到本地Maven存储库吗?)
3)毕竟,在那种情况下最好的架构是什么?数据存储提供程序将持久性数据存储在磁盘上,并与每个工作区的内存缓存同步,并通过超时将内存中的数据持久化到磁盘吗?什么是最佳解决方案,我应该选择哪个数据库?(可能对现有的PostgreSQL有用吗?)
谢谢)
Ignite不适合该选项,因为JPA 1仅支持。Redis不支持SQL查询。我们的选择是带有从属复制的普通PostgreSQL主数据库。可能是cockroachDB也适用。感谢帮助))