java多用户商城系统架构之第二篇

对于互联网,尤其是电商系统,访问速度是一个非常大的问题

类似淘宝、京东,如果做双十一活动、秒杀等,都需要能处理高并发、大访问量问题的


本文章只做一个抛砖迎玉,不讲解具体业务、技术细节,适合工作五年以上技术人员阅读


对于高并发、秒杀

一、缓存

    1、数据缓存

    2、页面、文件等缓存

        类似淘宝、京东都是把图片、文件缓存在用户本地,下次再访问就直接访问本地文件,如果访问没有,就去CDN服务器上下载,下载也是通过集群分发形式,下载最近的服务器文件。下载到本地之后,就做永久保存,不做删除,如果需要修改文件,就改文件名就行了。


二、分布式图片服务器

    类似FastDFS等,这个有java、php、.net等客户端,支持多语言,非常不错

三、集群

    这个是老生常谈,必须要做的,一个需要注意的是session的统一管理

四、分布式

   将一些访问量高的接口独立出来,做成服务化的方式,服务化不一定非得用dubbo,其实阿里的很多开源产品,代码质量写的也不咋样,只不过你也没有更好的替代品了,毕竟它是经过那么多考验的了。目前我们公司有自己定制的dubbo。


五、数据库读写分离、分库分表

   这个主要是DBA做的,数据库做成支持读写分离、分库分表


六、大表处理

   大表一般目前可以做分区表,但是分区表也是有隐患的,最好前期就支持分表的,根据业务经常划分

   推荐技术:1、sharding-jdbc,在jdbc层做分表,目前支持mybatis、hibernate、jpa等等,需要开发负责

             2、mycat,通过代理的形式,这个只需要运维负责就行


七、对于访问量大的商品、店铺

  这个一般淘宝、京东他们都是会做特殊处理,比如会专门卖服务给一些大的商家,当他们访问量大了,就会自动针对他们店铺做集群,迁移到专门的集群环境


最后,如果有企业需要商城开发,可以联系我们,我们产品是B2B2C模式,架构是:SpringMVC、MyBbatis、mysql/oracle/sqlserver、reids、dubbo、zookeeper、nginx,支持集群模式的

你可能感兴趣的:(java多用户商城系统架构之第二篇)