Giter Club home page Giter Club logo

touch-air-mall's Introduction

商城简介

  • 项目由业务集群系统+后台管理系统构成,打通了分布式开发及全栈开发技能,包含前后分离全栈开发、Restful接口、数据校验、网关、注册发现、配置中心、熔断、限流、降级、链路追踪、性能监控、压力测试、系统预警、集群部署、持续集成、持续部署…
  • 一个完整的电商项目,采用现阶段流行的技术来实现,是一个非常好的练手项目,工作中或平时积累的技术的一次完美融合
  • 持续更新中

分布式基础_全栈开发篇

  • 使用SpringBoot+Vue+element-ui+逆向工程搭建全套后台管理系统,基于Docker环境,通过前后分离方式,以商品系统为例,进行全栈开发

分布式高级_微服务架构篇

  • 开发整个商城系统,掌握微服务的全套方案。使用SpringBoot+SpringCloud并配套SpringCloud Alibaba系列,引入全套微服务治理方案:Nacos注册中心/配置中心、Sentinel流量保护系统、Seata分布式事务&RabbitMQ柔性事务方案、SpringCloud-Gateway网关、Feign远程调用、Sleuth+Zipkin链路追踪系统、Spring Cache缓存、SpringSession跨子域Session同步方案、基于ElasticSearch7全文检索、异步编排与线程池、压力测试调优、Redisson分布式锁、分布式信号量等

高可用集群_架构提升篇

  • 基于kubernetes集群,整合kubesphere可视化界面,搭建全套系统环境。使用集群化部署,包括Redis Cluster集群,MySQL主从与分库分表(使用ShardingSphere完成)集群,RabbitMQ镜像队列集群,ElasticSearch高可用集群。基于kubesphere整合Jenkins全可视化CICD,全套Pipeline流水线编写,参数化构建+手动确认模式保证

组织架构

项目组织

touch-air-mall
├── doc 项目相关资料
	├── img -- 图片样例
	├── markdown -- 项目笔记
	├── nacos -- nacos相关配置导出
	├── nginx -- nginx相关配置
	├── sql -- 数据库文件
	├── tool -- 开发常用工具
├── mall-auth-server -- 认证服务
├── mall-cart -- 购物车服务
├── mall-common -- 工具类及通用代码
├── mall-coupon -- 优惠卷服务
├── mall-gateway -- 统一配置网关
├── mall-member -- 会员服务
├── mall-order -- 订单服务
├── mall-product -- 商品服务
├── mall-search -- 检索服务
├── mall-seckill --秒杀服务
├── mall-test-sso-client -- 单点登录客户端1
├── mall-test-sso-client2 -- 单点登录客户端2
├── mall-test-sso-server -- 单点登录服务端
├── mall-third-part -- 第三方服务
├── mall-ware -- 仓储服务
├── renren-generator -- 人人开源项目的代码生成器
├── renren-fast -- 人人admin管理后台
├── Jenkinsfile -- jenkins配置文件
└── renren-fast -- 人人admin管理后台

部分功能演示

更多演示效果

商品服务

三级分类

  • 树形展示

  • 树形拖拽保存

品牌管理

  • 整合oss

属性分组

  • 父子组件交互

  • 级联选择器

商品新增发布

  • 新增商品,保存spu、sku等基本信息,发布商品,数据同步到Es中,后续检索服务使用

    查看ES中是否成功写入

    image-20210118145913086

商城业务

商城首页

  • nginx 域名访问--负载均衡到网关

  • 动静分离--静态资源直接存放在nginx中

  • 缓存--优化三级分类获取

商城检索

  • 两种方式进入

  • 检索条件

    • 1、全文检索:skuTitle -> keyword

    • 2、排序:saleCount(销量)、hotScore(热度评分)、skuPrice(价格)

    • 3、过滤:hasStock(是否有货)、skuPrice(价格区间)、brandId(品牌id 可以多选)、catalogId

    • 4、聚合:attrs(属性)

    • 5、面包屑导航

    • 6、条件删除&条件筛选联动

商品详情

  • 商品详情 商品详情页.gif

社交登录

  • 社交登录 第三方登录回显效果演示.gif

单点登录

  • 单点登录效果演示 单点登录效果演示.gif

购物车

  • 购物车效果演示 购物车效果演示.gif

订单业务

  • 订单创建、验证令牌、验价、锁定库存 订单确认、下单效果演示.gif

分布式事务

  • 可靠消息模式 可靠消息(最终一致性)效果演示.gif

支付

  • 沙箱环境演示:
    • 提交订单,等待一分钟不支付,消息过期,关闭订单,解锁库存

      • 预期结果:支付宝自动收单,交易超时无法支付
    • 提交订单立马支付,支付成功,异步通知

      • 预期结果:订单状态:已付款,库存锁定 订单支付效果演示.gif

秒杀服务

  • 商品秒杀演示:校验合法性、信号量扣减、幂等性设置、MQ削峰 商品秒杀效果演示.gif

Sleuth+Zipkin服务链路追踪

  • 效果演示 image.png image.png image.png

流水线构建微服务

  • 流水线演示 流水线构建微服务.gif

技术选型

后端技术

技术 说明 官网
SpringBoot 容器+MVC框架 https://spring.io/projects/spring-boot
SpringCloud 微服务架构 https://spring.io/projects/spring-cloud
SpringCloudAlibaba 一系列组件 https://spring.io/projects/spring-cloud-alibaba
MyBatis-Plus ORM框架 https://mp.baomidou.com
Elasticsearch 搜索引擎 https://github.com/elastic/elasticsearch
RabbitMQ 消息队列 https://www.rabbitmq.com
Springsession 分布式缓存 https://projects.spring.io/spring-session
Redisson 分布式锁 https://github.com/redisson/redisson
Docker 应用容器引擎 https://www.docker.com
OSS 对象云存储 https://github.com/aliyun/aliyun-oss-java-sdk

架构图

系统架构图

image-20210115085713740

业务架构图

image-20210115085746142

touch-air-mall's People

Contributors

free3growth avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.