CMIS 应用性能优化全解析
1. 缓存机制
在 CMIS 应用中,缓存是提升性能的关键手段。对于没有内置缓存的客户端库,开发者可利用编程语言构建简单的缓存基础设施,如 Web 应用可使用 HTML5 Web Storage。
1.1 静态数据缓存
在生产环境中,CMIS 里的部分数据是静态的,可在客户端缓存,主要包括存储库信息和类型定义。这些数据在应用中会反复使用,仅获取一次并缓存可提升效率。
OpenCMIS 会自动缓存存储库信息和类型定义,由 Session 对象管理所有缓存。通常无需更改缓存设置,但当应用同时处理超 100 种不同对象类型时,可增大类型定义缓存大小。
在开发环境中,类型定义可能在应用运行时改变。新增或移除类型一般不影响应用,新增类型在首次加载对应对象时被获取,移除类型仍会留在缓存中但无对象引用。若类型定义被修改且已缓存,加载使用更改后的首个对象时,OpenCMIS 可能抛出异常,此时可调用 Session 对象的 clear 方法清除所有缓存或创建新的 Session 对象。
每个用户对应一个 Session,这是因为存储库会为不同用户返回不同的存储库信息和类型定义,如类型和属性定义的显示名称可本地化,部分用户可能无权查看某些类型定义,管理员用户获取的存储库功能也可能不同。因此,应尽量复用 Session 对象,创建新的 Session 会丢弃缓存,影响应用性能。
OpenCMIS 还有一个 AtomPub 链接缓存,虽处于底层不易察觉,但对 AtomPub 绑定实现的性能至关重要。创建会话时可通过会话参数调整缓存设置,该缓存更新频繁,默认大小 400 项适用于多数场景。
超级会员免费看
订阅专栏 解锁全文
7453

被折叠的 条评论
为什么被折叠?



