Java 共享nHibernate和hibernate二级缓存
是否可以在hibernate和nhibernate解决方案之间共享二级缓存?我有一个环境,其中运行.net的服务器和运行java的服务器都访问同一个数据库 他们访问的数据有一些重叠,因此共享二级缓存是可取的。可能吗 如果这是不可能的,其他人提出了哪些解决方案 他们访问的数据有一些重叠,因此共享二级缓存是可取的。可能吗 这需要(这很可能过于简单):Java 共享nHibernate和hibernate二级缓存,java,.net,nhibernate,hibernate,orm,Java,.net,Nhibernate,Hibernate,Orm,是否可以在hibernate和nhibernate解决方案之间共享二级缓存?我有一个环境,其中运行.net的服务器和运行java的服务器都访问同一个数据库 他们访问的数据有一些重叠,因此共享二级缓存是可取的。可能吗 如果这是不可能的,其他人提出了哪些解决方案 他们访问的数据有一些重叠,因此共享二级缓存是可取的。可能吗 这需要(这很可能过于简单): 能够从Java和.Net访问缓存 为(N)个Hibernate提供缓存提供程序实现 能够以与两种语言兼容的格式读/写数据(或者将缓存相互化没有意义)
- 我不知道有一个现成的解决方案实现了这一点(我的第一个想法是Memcache,但AFAIK Memcache存储了数据的序列化版本,因此这不符合最重要的要求#3)
- 我想知道使用与语言无关的格式来存储数据是否不会产生太多的开销(并以某种方式破坏了使用缓存的目的)
- 我不知道有一个现成的解决方案实现了这一点(我的第一个想法是Memcache,但AFAIK Memcache存储了数据的序列化版本,因此这不符合最重要的要求#3)
- 我想知道使用与语言无关的格式来存储数据是否不会产生太多的开销(并以某种方式破坏了使用缓存的目的)
我从来没有这样做过,但是如果我们讨论的是读写缓存,并且如果使用两个单独的缓存,那么必须从.Net端反向使给定的Java缓存区域无效。您必须编写代码来处理这个问题。正如Pascal所说,共享第二个缓存在技术上是不可能的 但是,您可以从不同的角度来考虑这一点 两个应用程序不太可能读取和写入相同的数据。因此,您可以实现的不是共享缓存,而是缓存失效服务(使用您选择的通信堆栈) 例如:
- 应用程序A主要读取
数据并写入客户
数据发票
- 应用程序B主要读取
数据并写入发票
数据客户
- 因此,应用程序A缓存
数据,应用程序B缓存客户
数据发票
您还可以逐出整个实体类型、集合和区域。正如Pascal所说,共享第二个缓存在技术上是不可能的 但是,您可以从不同的角度来考虑这一点 两个应用程序不太可能读取和写入相同的数据。因此,您可以实现的不是共享缓存,而是缓存失效服务(使用您选择的通信堆栈) 例如:
- 应用程序A主要读取
数据并写入客户
数据发票
- 应用程序B主要读取
数据并写入发票
数据客户
- 因此,应用程序A缓存
数据,应用程序B缓存客户
数据发票