我计划构建一个使用Hibernate和MySQL作为数据源的桌面应用程序。我想在多台机器上执行桌面应用程序,但我希望它们都能读/写相同的MySQL数据库。这有可能吗?我关心的是当两个应用程序试图访问/修改相同的信息时的并发问题。对于多个ORM应用程序,是否有替代的解决方案来实现实时数据库同步(如果不允许单个数据库同步)?
在stackoverflow上也有一些与我类似的问题,但他们的答案并不能让我满意。
发布于 2013-08-31 01:04:11
您可以让多个基于hibernate的应用程序与同一数据库对话。在很大程度上,这与运行与同一数据库对话的多个线程基本相同。
如果您的hibernate配置使用二级缓存,则可能会出现最常见的问题。当hibernate配置二级缓存时,它假定缓存与底层数据库一致。当您有一个单独的应用程序连接到数据库时,二级缓存可以存在于应用程序服务器的本地RAM中,一切都很好。
如果您有多个服务器(无论它们运行的是相同的应用程序还是不同的应用程序),则需要有一个由所有服务器共享的二级缓存。或者你不需要使用二级缓存。
hibernate的二级缓存有几种分布式缓存解决方案-如果你决定走这条路,谷歌将帮助你研究各种选择。
同样的论点也适用于查询缓存。
https://stackoverflow.com/questions/18537675
复制相似问题