我计划构建一个桌面应用程序,它将使用 Hibernate 和 MySQL 作为其数据源。我想在多台机器上执行桌面应用程序,但我希望它们都读/写同一个 MySQL 数据库。这可能吗?我担心的是当两个应用程序尝试访问/修改相同信息时的并发问题。是否有其他解决方案可以让多个 ORM 应用程序实现实时数据库同步(如果不允许单个数据库)?
stackoverflow 上有一些与我类似的问题,但他们的答案并不令我满意。
您可以让多个基于休眠的应用程序与同一个数据库进行通信。在大多数情况下,这与运行多个线程与同一个数据库通信几乎相同。
如果您的休眠配置使用二级缓存,则可能会出现最常见的问题。当hibernate配置二级缓存时,它假设缓存与底层数据库一致。当您有一个连接到数据库的应用程序时,二级缓存可以存在于应用程序服务器的本地 RAM 中,一切都很好。
如果您有多个服务器(无论它们运行相同的应用程序还是不同的应用程序),则需要有一个由所有服务器共享的二级缓存。或者你不需要使用二级缓存。
Hibernate 的二级缓存有多种分布式缓存解决方案可供选择 - 如果您决定走这条路,Google 将帮助您研究各种选项。
同样的论点也适用于查询缓存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)