淘淘商城简介——淘淘商城

 

电商简介

  • 技术特点: 
    • 技术新
    • 技术范围广
    • 分布式
    • 高并发、集群、负载均衡、高可用
    • 海量数据
    • 业务复杂
    • 系统安全
  • 电商模式: 
    • B2B:企业到企业,商家到商家。代表:阿里巴巴、慧聪网。
    • B2C:商家到客户。代表:京东、淘宝商城(B2B2C)。
    • C2C:客户到客户。淘宝集市。
    • O2O:线上到线下。

淘淘商城简介

  • 一个B2C平台,类似淘宝、京东。

功能模块

  • 1.b2c.png
  • 功能模块: 
    • 后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
    • 前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
    • 会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
    • 订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
    • 搜索系统:提供商品的搜索功能。
    • 单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。

技术架构的对比

传统架构

  • 功能模块集中在一个工程里,部署在服务器或者集群上,集群的每台服务器包含相同的代码。
    1.framework1.png
  • 问题: 
    1. 模块之间耦合度太高,其中一个升级其他都得升级。
    2. 开发困难,各个团队开发最后都要整合一起。
    3. 系统的扩展性差。
    4. 不能针对每个模块的需要,灵活的进行分布式部署。

分布式架构

  • 分布式:把系统拆分成多个工程,多个工程互相协作。
    1.framework2.png
  • 优点: 
    1. 把模块拆分,使用接口通信,降低模块之间的耦合度。
    2. 把项目拆分成若干个子项目,不同的团队负责不同的子项目。
    3. 增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
    4. 可以灵活的进行分布式部署。
  • 缺点:系统之间交互需要使用远程通信,接口开发增加工作量。

技术选型

  • Spring、SpringMVC、Mybatis
  • JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
  • Redis(缓存服务器)
  • Solr(搜索)
  • httpclient(调用系统服务)
  • Mysql
  • Nginx(web服务器)

工程总览

  • 使用了面向服务的架构(Service-Oriented Architecture, SOA)

数据库

  • mysql作为关系型数据库,提供数据的持久化。
  • redis作为内存数据库,提供高性能的缓存。

服务层

  • taotao-rest提供商品信息,内容服务。
  • taotao-sso提供单点登录服务。
  • taotao-order提供订单服务。
  • taotao-search提供商品搜索服务,基于solr索引库。

交互

  • taotao-portal作为网站的门户,与用户交互。
  • 微信商城之类的app也可以调用服务层的服务,完成门户的功能。
  • taotao-manager作为后台管理,供管理员完成对网站商品和内容的增删改查。

开发过程目录

  1. 淘淘商城简介——淘淘商城(一):电商行业的了解和商城架构的分析。
  2. 后台管理系统框架搭建——淘淘商城(二):使用IDEA结合maven创建多模块工程taotao-manager。
  3. SSM框架的整合——淘淘商城(三):对Mybatis、Spring、SpringMVC框架进行配置,实现整合。
  4. 商品列表功能实现——淘淘商城(四):基于SSM框架,使用pagehelper插件和datagrid组件完成分页展示功能。
  5. 商品类目选择——淘淘商城(五):使用easyui tree组件完成对商品类目的展示。
  6. 图片的管理方式——淘淘商城(六):分析传统和使用图片服务器的管理方式。
  7. ubuntu上安装vsftpd——淘淘商城(七):在linux安装ftp服务器,接收上传的图片。
  8. ubuntu上安装nginx——淘淘商城(八):在linux安装nginx,作为http服务器,提供图片访问的服务。
  9. 上传商品图片——淘淘商城(九):使用FTPClient和kindEditor上传图片到图片服务器。
  10. 添加商品功能——淘淘商城(十):编辑和将商品信息入库。
  11. 商品规格的数据库设计和实现流程——淘淘商城(十一):分析使用多张表或是模板储存商品规格。
  12. 商品规格管理的实现——淘淘商城(十二):使用模板法储存和展示商品规格。
  13. 前台工程搭建——淘淘商城(十三):搭建门户工程taotao-portal和服务层工程之一taotao-rest。
  14. 首页商品分类展示——淘淘商城(十四):jsonp使得ajax跨域调用服务层,展示商品分类。
  15. CMS系统开发——淘淘商城(十五):管理首页图片等内容。
  16. 首页大广告展示——淘淘商城(十六):使用httpclient调用服务层,展示首页广告。
  17. redis简介和安装配置——淘淘商城(十七):redis的学习和安装。
  18. redis优化商城首页.——淘淘商城(十八):在业务中添加读取和写入缓存的逻辑,并且同步缓存。
  19. solr7.3在ubuntu14上的安装配置和使用——淘淘商城(十九):学习并安装和使用新版的solr服务器。
  20. 基于solr7的搜索工程——淘淘商城(二十):搭建taotao-search,使用solrj导入商品索引并调用solr服务器进行搜索。
  21. 商品搜索结果展示——淘淘商城(二十一):http调用服务层,展示搜索的商品。
  22. 商品详情页面展示——淘淘商城(二十二):延时和按需加载商品内容,使用分层次的redis键。
  23. 单点登录系统架构——淘淘商城(二十三):分析会话机制、session共享问题,了解单点登录。
  24. 单点登录系统的接口开发——淘淘商城(二十四):搭建taotao-sso,开发用户相关接口并使用postman测试。
  25. 用户注册登录退出功能的实现——淘淘商城(二十五):操作cookie,标识用户登录状态,并实现页面跳转和拦截器强制登录。
  26. 购物车的实现——淘淘商城(二十六):在cookie中储存购物车,并在页面展示购物车商品。
  27. 订单系统的实现——淘淘商城(二十七):创建taotao-order,开发订单接口,并在门户工程中调用,展示订单和提交订单。

部署

项目源码