框架选择:
[url]http://www.iteye.com/topic/205144?page=1[/url]
[color=darkred]本文只是对论坛一个讨论帖子的整理,只供自己参考,别见笑![/color]
struts+spring+ibatis+freemarker
国内某每日PV上亿的网站的架构,当然是集群来撑的。
集群不是万能,做不好,很影响性能。
支撑PV上亿,还有很多技术和技巧,而且更多的时候体现处理问题的设计上面。
Struts+spring+hibernate+freemaker
再考虑一下Ehcache或是Oscache
的确是有很多这种说法,如果对hibernate不熟悉的话,完全可以考虑采用ibatis
spring自带的例子petstrore就是一个对ibatis很好的应用,可以参考一下
反对用Hibernate,如果大访问量的话,会有非常专业的DBA来对SQL优化,如果用Hibernate,优化很难的
有时间的话可以研究Hibernate,但是它只能作为一个高效的sql生成器,并不能减少什么屏蔽sql的作用,要成为Hibernate高手,sql就不能太差,要知道什么业务操作会产生什么样的sql,执行效率如何。但是一旦成形了,后期效率会非常高。
要想真正提高性能,要根据业务,进行精确的缓存架构设计和应用,缓存架构可以是一种或多种形式的组合,既可以利用持久层的缓存,也可以利用前台的memcached,也可以考虑JVM级的对象级缓存。
web中的application缓存,没有什么明显的弊病。
我认为的弊病是,在不是大规模使用的前提下,web缓存不利于测试,JVM级的缓存测试方便。
还有就是复用的问题,数据的消费者未必是web啊,也有可能是webservice对不对,这样的话webservice就不能用到web缓存了。
还有就是你的控制力度的问题了,web缓存的话意味着你控制的是处在web这一层的对象,比如页面显示信息和DTO等,你的manager和service要直接利用这个缓存也会很麻烦,估计也不会利用。当然如果web缓存用得好的话,其他层的缓存也未必要用了。
不同场合不同结论,给定应用场合比较好举例。
freemarker+webwork(Struts2.0)+spring+hibernate(ibatis)
[url]http://www.iteye.com/topic/205144?page=1[/url]
[color=darkred]本文只是对论坛一个讨论帖子的整理,只供自己参考,别见笑![/color]
struts+spring+ibatis+freemarker
国内某每日PV上亿的网站的架构,当然是集群来撑的。
集群不是万能,做不好,很影响性能。
支撑PV上亿,还有很多技术和技巧,而且更多的时候体现处理问题的设计上面。
Struts+spring+hibernate+freemaker
再考虑一下Ehcache或是Oscache
的确是有很多这种说法,如果对hibernate不熟悉的话,完全可以考虑采用ibatis
spring自带的例子petstrore就是一个对ibatis很好的应用,可以参考一下
反对用Hibernate,如果大访问量的话,会有非常专业的DBA来对SQL优化,如果用Hibernate,优化很难的
有时间的话可以研究Hibernate,但是它只能作为一个高效的sql生成器,并不能减少什么屏蔽sql的作用,要成为Hibernate高手,sql就不能太差,要知道什么业务操作会产生什么样的sql,执行效率如何。但是一旦成形了,后期效率会非常高。
要想真正提高性能,要根据业务,进行精确的缓存架构设计和应用,缓存架构可以是一种或多种形式的组合,既可以利用持久层的缓存,也可以利用前台的memcached,也可以考虑JVM级的对象级缓存。
web中的application缓存,没有什么明显的弊病。
我认为的弊病是,在不是大规模使用的前提下,web缓存不利于测试,JVM级的缓存测试方便。
还有就是复用的问题,数据的消费者未必是web啊,也有可能是webservice对不对,这样的话webservice就不能用到web缓存了。
还有就是你的控制力度的问题了,web缓存的话意味着你控制的是处在web这一层的对象,比如页面显示信息和DTO等,你的manager和service要直接利用这个缓存也会很麻烦,估计也不会利用。当然如果web缓存用得好的话,其他层的缓存也未必要用了。
不同场合不同结论,给定应用场合比较好举例。
freemarker+webwork(Struts2.0)+spring+hibernate(ibatis)