java btbtc商城

最近公司要搞商城,让我多方咨询,最后看了很多,要不就是代码、表字段注释不全,要不就是bug多,要么就是文档缺少,最后决定自己开发一套商城。

下面是开发的一些心得体会,权且记录下来,给自己做个记录把。

之前一直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。

由于Java是开源的,最近几年Hadoop等开源产品越来越成熟,而且是基于Java的,所以最终选择Java最后后台开发语言,现在前端是自己的前端工程师写的JS,后期准备改成前端是PHP,中间是Go语言,后台服务器是Java,因为PHP写前端很厉害,不过这个也是后期了。

控制层:这几年springMVC发展的非常火,而且开发效率比较高,struts系列已经完全没落了,所以现阶段选择SrpingMVC。

视图层:网上已经有非常多的测试过JSP、freemarkder、velocity等,结果性能:velocity>freemarker>jsp,开发速度:velocity>freemarker>jsp

数据库设计:

    1、关键的一个是绝对不能有外键强关联我看到类似用hibernate产品的一些公司,全部都是强关联,那你以后想删除一些数据,那真是噩梦的,这个还不用说,查询性能方面影响也是巨大的。

   2、分库分表,这个必须要支持的,做互联网数据量是非常的巨大的,如果开始就不能支持分库分表,那么后期会至少花上千万去做这事,最好一个例子就是当当网,当年很多事单库的,到现在也没有实现分库分表,它们只能使用一些分区表架构,分区表本身就存在很大问题,比如扩展性、数据量过亿都是问题!!!!

数据库选择:

最好还是myslq,

   1、轻量,

   2、开源(阿里的alisql就是MySQL改个名字)

   3、功能能满足电商需求

搜索:选择lucene较好,原因是他封装的较好,权限对于电商来说不应该设计的过于复杂,我认为主要就两张表就够了,一个是角色Role表,一个是资源Resources表,然后用户和角色通过中间表关联下就OK了,角色里面有资源,很简单的逻辑,security、shiro这两款的权限框架都能做出这个需求。

缓存:目前使用Redis,我看到有的公司使用的是memcache,这个10年前,就这屌样,功能非常的简陋不说,主要一个问题是会有死缓存,就是缓存怎么也清空不了,这个你想想就知道多悲剧了,商家修改了价格,怎么也改不了,最后只能关闭机器重启。还有的公司使用的还是hibernate提供的ehcache,这个大家自行了解即可,关键是他做集群有问题,搞电商不可能是单机的,刚上线至少是2台服务器。

还有一个最让人恶心的是,有些公司用mybatis+Redis模式,但是实际上还是用的ehcache!!!!

静态化:一般模版语言都可以实现静态化,可以实现全站60%都是静态页面,数据从集群redis缓存中读取。

服务化:目前使用dubbo,虽然阿里开源的产品代码质量被人诟病,但是阿里的东西经受住高并发、大流量的考验,即时老外的东西再好,也没有这样的场景去考验,虽然权衡后选择dubbo。

图片服务器:这个也是非常重要的环节,目前我们测试系统都有15个G的图片了!!!!线上估计会是以T计算的,肯定是需要独立的图片服务器的。

集群、负载、分布式:前面的分库分表、服务化、图片服务器都是为集群、负载、分布式做准备的,集群需要基于CDN做动态切换,服务器用Nginx做负载,业务层用dubbo做分布式服务。

下面整理下整个架构吧:

    展示层/控制层:springMVC,在spring中做读写分离

    持久层:本团队开发的mybatis增强版本(程序员几乎不需要写SQL、配置等)

    数据库MySQL/Oracle,支持主从复制、读写分离、多机备份、支持分库分表

    缓存机制:redis,CDN图片缓存,也是支持热备份、高并发

    静态化机制:velocity/freemarker等模版语言

    图片服务器:购买专用服务器,用nginx做负载

    

    安全框架 springSecurity/shiro 
    搜索引擎: Lucene 
    

    服务器:Linux

    中间件:tomcat、nginx,还有其他N多的支持集群部署的安装间接软件,就不一一列举了

    图片服务器:通过nginx做的,SFTP方式统一上传

    集群方案:多机tomcat,seesion统一管理,图片统一管理。这些需要一套解决方案。

    服务器要求:linux/windows,8G内存,空间200G以上

    

   最后对于JAVA领域商城的开发,其实在PHP、.NET语言中,已经有非常多的成熟同类产品了,比如shopnc、ecshop等等等,但是PHP的逻辑都是写在前台文件中,这个就跟JAVA中的逻辑都是写在了JSP中一样,这样虽然便于开发,但是后期二次开发、维护都不方便。另外.NET语言大家都是知道的,它是不开源的,这个我觉得不敢用的,哪天你遇到致命bug了,没法从底层排查,这也是为什么银行、金融、电商很多行业不用这个语言原因了。

  

  另外对于JAVA开发方面,其实如果有好的架构,JAVA程序员只写逻辑,前端只写前端,数据库DBA只关注DBA,这样的话,开发起来会非常的方便。我们团队目前也是花了很长时间,也借鉴了很多成熟的框架,研发了一套适合商城开发的一套架构。等到以后有机会可以开源出来给大家。

PHPSHE商城系统是将商品管理、品牌管理、在线购物、订单管理、支付管理、文章管理、会员管理、客户咨询评价、数据统计等功能相结合,并提供了简易的操作、实用的功能,快速让用户建立独立个性化的网上商店,为用户提供了一个低成本、高效率的网上商城建设方案。操作简单好用,会上网者就可以操作。 PHPSHE功能概述: 软件适用于于各行业产品销售的商家,主要包括有以下功能: (1)管理员发布、修改,删除商品信息,商品多级分类检索、关键词模糊搜索等; (2)管理员可以对商品品牌名称,图片,描述等管理; (3)管理员可以对商品规格管理,如:尺寸,颜色,套餐等; (4)管理员对商品咨询管理,商品评价管理; (5)订单流程清晰,可及时便捷查询和修改订单信息; (6)管理员对文章分类管理、文章管理、单页信息管理; (7)管理员对会员信息管理,管理帐号管理; (8)管理员对网站整体基本信息的系统设置; (9)订单支付方式集成支付宝即时到帐,担保交易,双功能收款,线下转帐/汇款,货到付款,网银等接口方便用户支付; (10)详细的统计功能,管理员可以实时看到每日订单,网站访客流量情况,提高订单转化率; (11)数据缓存处理,提高系统的运行效率; (12)一键对网站进行备份恢复,保障数据安全; (13)支持首页导航、友情链接、首页广告图管理; (14)会员注册、登录,查询历史订单,咨询,评价以及商品收藏等。 PHPSHE安装说明: 1.用FTP工具(如flashfxp)把程序上传到服务器; 2.给./config.php文件、./install目录、./data目录及其子目录,加 777 权限(windows服务器可忽略此步); 3.访问http://您的网址/install进行安装。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑石课堂

请给我打钱!!!谢谢,不客气!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值