最近公司要搞商城,让我多方咨询,最后看了很多,要不就是代码注释不全,要不就是bug多,要么就是文档缺少,最后决定自己开发一套商城。
下面是开发的一些心得体会,权且记录下来,给自己做个记录把。
网址:www.redpigmall.net,本人QQ:4407509,有问题可以联系本人
之前一直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。
由于JAVA是开源的,最近几年hadoop等开源产品越来越成熟,而且是基于JAVA的,所以最终选择JAVA最后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是GO语言,后台服务器是JAVA,因为PHP写前端很厉害,不过这个也是后期了。
另外JAVA中struts系列,spring系列,jsp/freemarker/velocity等都非常的不错,但是目前我们主要是需要快速开发,完成功能,所以目前就是选择SpringMVC,ORM选择mybatis的,由于网上评价velocity较好,而且主要是方便开发,所以先选择它了。
另外对于搜索,选择lucene较好,原因也是方便开发,封装的较好,权限框架目前使用springSecurity,由于目前团队中有熟悉security的,后期我倾向于shiro。
下面整理下整个架构吧:
展示层/控制层:springMVC,在spring中做读写分离
持久层:mybatis
数据库:mysql,支持主从复制,多机备份
缓存机制:redis/memcache,CDN图片缓存,也是支持热备份、高并发的
静态化机制:velocity
安全框架 spring security
搜索引擎: Lucene
中文分词:IKAnalyzer
服务器:linux
中间件:tomcat、nginx,还有其他N多的支持集群部署的安装间接软件,就不一一列举了
图片服务器:通过nginx做的,SFTP方式统一上传
集群方案:多机tomcat,seesion统一管理,图片统一管理。这些需要一套解决方案。
服务器要求:linux/windows,4G内存,空间20G以上
最后对于JAVA领域商城的开发,其实在PHP、.NET语言中,已经有非常多的成熟同类产品了,比如shopnc、ecshop等等等,但是PHP的逻辑都是写在前台文件中,这个就跟JAVA中的逻辑都是写在了JSP中一样,这样虽然便于开发,但是后期二次开发、维护都不方便。另外.NET语言大家都是知道的,它是不开源的,这个我觉得不敢用的,哪天你遇到致命bug了,没法从底层排查,这也是为什么银行、金融、电商很多行业不用这个语言原因了。
另外对于JAVA开发方面,其实如果有好的架构,JAVA程序员只写逻辑,前端只写前端,数据库DBA只关注DBA,这样的话,开发起来会非常的方便。我们团队目前也是花了很长时间,也借鉴了很多成熟的框架,研发了一套适合商城开发的一套架构。等到以后有机会可以开源出来给大家。
网址:www.redpigmall.net,本人QQ:4407509,有问题可以联系本人