nhibernate - Windows Azure 中的多个 NHibernate 实例是否需要外部二级缓存?

标签 nhibernate hibernate caching azure memcached

我正在 FlourineFx 上开发 AMF Flash 网关应用程序部署在Windows Azure上,并且我想使用Azure SQL

我使用 NHibernate 2.1 + NHibernate.Linq 1.0 + FluentNHibernate 1.1

此 FlourineFx 网关将有两个或多个实例,并且只有 1 个数据库。

我计划实现 memcached 稍后作为二级缓存(作为 Windows Azure WorkerRole),但是有必要吗? (我不介意性能,但我介意一致性)

最佳答案

I don't know if 2nd level cache solves some transaction-related problems or just makes it faster

L2缓存的主要目的是避免数据库命中,我不会说L2缓存解决了事务相关的问题;如果 NHibernate 支持完全事务性缓存,那么它可能会参与其中(从而使整个过程变得更加复杂)。

就我个人而言,我倾向于将 L2 缓存的使用限制为只读(或大部分读取)对象,这就是 L2 缓存发挥其全部功能的地方。缓存读写实体比较棘手,尤其是在集群环境中,并且缓存提供程序 must support应用程序对给定实体所需的缓存并发策略(只读、非严格读写、读写)。

我不确定这是否真的回答了问题,但至少它可能会给你一些提示。

引用文献

关于nhibernate - Windows Azure 中的多个 NHibernate 实例是否需要外部二级缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3656402/

相关文章:

java - 如何将数据库中计数的属性添加到@Entity 类?

java - 监控elipselink缓存L2,L1

android - Glide 无法解析方法 'signature(StringSignature)'

c# - 具有深度对象图的 NHibernate DTO

java - Hibernate 自定义代理生成器 - 停止 equals() 初始化惰性代理

java - 使用元模型区分大小写条件的 JPA 2 Criteria API

c# - Asp.net - 用于存储字典的缓存与静态变量

nhibernate - 为一对多关系禁用自动\延迟加载子记录

.net - Nhibernate 中的查询

asp.net-mvc - 如何配置 Nhibernate 不在当前 session 中保存对象