我有一个spring引导应用程序,它连接到内存中的H2数据库。如果我必须水平地升级spring引导应用程序,比如2-3个并行实例(我使用的是docker )。如何实现各个实例的H2数据库之间的数据一致性。这样,即使请求发送到任何实例,H2数据库的所有3个实例中的数据也始终是同步的。
发布于 2021-09-05 19:08:32
H2是一个用java编写的数据库,它支持集群。
https://www.h2database.com/html/advanced.html?highlight=clustering#clustering
但是当涉及到嵌入式H2时,它不支持集群。如果要实现数据一致性,可以在spring之外作为集群运行数据库。或者您可以在服务之间实现某种形式的分布式缓存,比如Hazelcast。
如果正如您在注释中所写的那样,这是一个POC,并且您使用的是docker,那么我将删除H2,并在码头容器中使用一个单独的数据库,比如mongo、postgres、redis等,所有服务都连接到这些数据库中。会让你的生活轻松得多。
https://stackoverflow.com/questions/69063194
复制相似问题