我打算构建一个桌面应用程序,它将使用Hibernate和MySQL作为其数据源.我想在多台机器上执行桌面应用程序,但我希望它们都能读/写同一个MySQL数据库.这甚至可能吗?当两个应用程序试图访问/修改相同的信息时,我担心的是并发问题.是否存在多个ORM应用程序的替代解决方案,以实现实时数据库同步(如果不允许单个数据库)?
在stackoverflow上有一些类似的问题,但他们的答案不满足我.
解决方法:
您可以让多个基于hibernate的应用程序与同一个数据库通信.在大多数情况下,这与运行与同一数据库通信的多个线程几乎相同.
如果您的hibernate配置使用二级缓存,则可能会出现最常见的问题.当hibernate配置了二级缓存时,它假定缓存与底层数据库一致.当您将单个应用程序附加到数据库时,二级缓存可以存在于应用程序服务器的本地RAM中,一切都很好.
如果您有多个服务器(无论它们是运行相同的应用程序还是不同的应用程序),您需要拥有一个由所有服务器共享的单个二级缓存.或者您不需要使用二级缓存.
可以使用几种用于hibernate二级缓存的分布式缓存解决方案 – 如果您决定采用这种方式,谷歌将帮助您研究各种选项.
同样的参数也适用于查询缓存.
标签:java,mysql,hibernate
来源: https://codeday.me/bug/20190517/1121582.html
版权声明:本文为weixin_32487565原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。