网站首页
┆
博客首页
┆欢迎光临 Bos开发者网络
登录
┆
注册
┆
帮助
我的企业架构视点
http://dev.kingdee.com/pages/hjm/default.aspx
主页
日志
相册
最新日志
应用模式分析系列四(Identity Field)
应用模式分析系列三(Lazy Load)
应用模式分析系列二(Identity Map)
J2EE基础知识温故一:JNDI
应用模式分析系列一(UOW)
日志搜索
Go
最近回复
re: 产品性能与用户操作的关系
订货式生产是现在常见的生产模式, 如果想提高生产排程的简...
--smith
re: 产品性能与用户操作的关系
产品性能与用户操作的关系:与实施水平以及应用技巧也有很大...
--诗欢
re: 应用模式分析系列一(UOW)
面向对象技术值得深入研究!谢谢!...
--诗欢
re: J2EE基础知识温故一:JNDI
不错不错,从易到难。 挺喜欢的,谢谢了…...
--yj
re: 我们能应用AOP么?
我以为金蝶早就实现了AOP呢,原来。。。。。。 哈哈...
--tansm
日志
应用模式分析系列二(Identity Map)
标识映射(Identity Map)
通过内存映射标志,确保每个对象只加载一次。
上面是定义,实际上就是在内存中维持一个对象缓存(通常是Map缓存),每次获取对象的时候,先到缓存中获取,不存在再访问数据库,当然需要考虑更新时的同步。这不是个什么新鲜东西,给一种常用的做法赋予一个深奥的名字就是大师们常干的事情。对于这个模式我没有太多个人的想法,只有以下2点:
1、Map的层次。如果一个对象会存在并发更新,则只能作为会话层缓存映射。如果一个对象属于只读对象,则可以作为全局缓存映射。在EAS的Cache中提供了CacheRegion的划分方式,结合Session对象,我们可以灵活定义映射层次。嗯,我认为Session是个好东西,如果不被滥用的话。
2、映射的大小:由于JAVA虚拟机的要求,在32位的服务端对内存是有严格要求的,基本上就在1.3G左右,以前元数据是做了映射缓存,可惜占用内存太多,被无情地Cut了,改为采用惰性加载+WeakReferrence的处理方式,我还是认为缓存起来比较好,以前也思考过对应的方案。其中和Anderson就讨论过是否可以通过专用的CacheServer来满足需求。以前没有集群方案,现在有了集群,似乎该方案开始具备可行行了。
已经公开 2007年9月14日 16:40 作者:
胡锦敏
评论
#
tansm
缓存这个东西在集群下的数据同步的确是个头大的问题,如果在Session中就更头痛了,不知道金蝶实现了真正的负载平衡吗?谢谢。tansm@msn.com
2007-10-25 18:26
请登录后再发表评论以赚取更多积分
About 胡锦敏
计算机应用专业博士,留荷博士后,工作流专家,长期从事企业建模、工作流和电子商务等相关的研究工作,02年加盟金蝶从事EAS的总体设计工作,现为金蝶EAS资深架构师。同时还主导国家863企业信息化技术相关课题的研究工作,研究范围包括MDA,SOA、应用集成、企业间业务协同等。