Alachisoft最近为他们公司旗下的产品NCache推出了一个对功能进行大量削减的版本,以Apache 2的授权方式进行开源。这一开源版本仅支持.NET客户端,而完整的版本还同时支持Java。
NCache企业版的特性列表绝对配得上你对一个在业界处于领先地位的缓存提供器的各种期望。但一旦当你开始使用开源版本之后,很快就会遇到各种令人无法忽视的陷阱,令人对该产品的实用性产生质疑。
在开源版本中,依然能够对缓存进行分布或是分块,但对于分布和分块的镜像、桥接和组合功能依然只限于企业版本。
对于ASP.NET应用程序来说,开源版本支持会话和视图状态的缓存,但对输出缓存的支持仍然只限于企业版本。(正如之前所说的一样,对于Java的任何缓存支持,包括对web会话的缓存也是仅限于企业版)。
同样,缓存依赖也只在企业版本中才支持。这种特性允许对某些内容的改动进行监控,例如文件系统和数据库表,在改动发生后自动使缓存失效。NCache在开源版本中去除这一特性的做法让人有些摸不着头脑,毕竟使这一特性生效的组件本身就是.NET 2.0中内置的缓存类库中的一部分。
另一个奇怪的做法是NCache决定只在企业版本中支持异步操作,通常来说,现如今只有那些不再进行维护的遗留类库才不提供异步操作的特性。
对于开源版本的NCache中的缓存收回(eviction)策略,很难找到一个很好的词汇进行形容,只能说是相当诡异。它只支持基于优先级的收回策略,而一些标准的策略,例如最近最少使用,以及使用频度最低等等,实现的难度基本上相当于大学生的回家作业而已,但它们也只能在企业版中支持。而“不要进行收回”这一选项也只属于企业版本,这在某些场景中,例如保存会话状态时也可能会产生问题。
NCache的管理工具与监控工具同样只支持专业版和企业版,对于此类产品来说也算是传统的做法。
通过进一步尝试,我们还发现各种类型的认证和授权功能只属于企业版。对于任何一个稍具安全意识的公司来说,这一点让这个开源版本的产品无法成为他们的选择。
结论。如果你有兴趣观察一下一个分布式缓存是如何实现的,那么这个 开源版本的NCache 还是有研究价值的。但如果打算在生产环境中使用的话,还是应该选择 NCache的企业版 ,或是另外一种竞争产品,例如 Memcached 。
查看英文原文: Basic NCache is Now Open Source