1. 项目介绍

Github地址:https://github.com/ylw-github/taodong-shop

众所周知,目前主流的电商企业就是 “淘宝” 和 “京东” 了,跟个风,本电商项目叫 《淘东电商项目》 ,项目采用目前主流的SpringBoot + SpringCloud来构建,实现一套完整的微服务解决方案。

2. 项目架构图

3. 环境需求

由于本项目对环境的要求非常高

建议电脑配置:

  • 在CPU I5
  • 内存32GB
  • 或者电脑采用集群化部署

开发环境要求:

  • JDK统一要求:JDK1.8
  • Maven统一管理jar
  • 统一采用Docker安装软件
  • 编码统一采用UTF-8
  • 开发工具IDE或者Eclipse

4. 技术选型

4.1 SpringBoot2.x+SpringCloud2.x构建微服务电商项目

  1. 使用SpringCloud Eureka作为注册中心,实现服务治理
  2. 使用Zuul网关框架管理服务请求入口
  3. 使用Ribbon实现本地负载均衡器和Feign HTTP客户端调用工具
  4. 使用Hystrix服务保护框架(服务降级、隔离、熔断、限流)
  5. 使用消息总线Stream RabbitMQ和Kafka
  6. 微服务API接口安全控制和单点登录系统CAS+JWT+OAuth2.0

4.2 分布式基础设施构建

  1. 分布式任务调度平台XXL-JOB
  2. 分布式日志采集系统ELK
  3. 分布式事务解决方案LCN
  4. 分布式锁解决方案Zookeeper、Redis
  5. 分布式配置中心(携程Apollo)
  6. 高并发分布式全局ID生成(雪花算法)
  7. 分布式Session框架Spring-Session
  8. 分布式服务追踪与调用链Zipkin

4.3 项目运营与部署环境

  1. 分布式设施环境,统一采用Docker安装
  2. 使用jenkins+docker+k8s实现自动部署
  3. 微服务API管理ApiSwagger
  4. 使用GitLab代码管理
  5. 统一采用第三方云数据库
  6. 使用七牛云服务器对静态资源实现加速

5. 项目目录结构

l____ taodong-shop-basics(分布式基础设施)
l________ taodong-shop-basics-eureka(注册中心)
l________ taodong-shop-basics-apollo-config-server(分布式配置中心)
l________ taodong-shop-basics-elk-kafka(分布式日志采集系统)
l________ taodong-shop-basics-lcn(分布式事务解决框架)
l________ taodong-shop-basics-xxljob(分布式任务调度平台)
l________ taodong-shop-basics-xxlsso-server(分布式单点登录系统)
l________ taodong-shop-basics-zipkin(分布式调用链系统)
l________ taodong-shop-basics-zuul(网关)
l____ taodong-shop-service-api(接口层)
l________ taodong-shop-service-api-goods(商品服务接口)
l________ taodong-shop-service-api-member(会员服务接口)
l________ taodong-shop-service-api-order(订单服务接口)
l________ taodong-shop-service-api-pay(支付服务接口)
l________ taodong-shop-service-api-search(搜索服务接口)
l________ taodong-shop-service-api-spike(秒杀服务接口)
l________ taodong-shop-service-api-sso(单点登录服务接口)
l________ taodong-shop-service-api-weixin(微信服务接口)
l________ taodong-shop-service-api-integral(积分服务接口)
l________ taodong-shop-service-api-auth(OAuth授权验证服务接口)
l____ taodong-shop-service(服务层)
l________ taodong-shop-service-goods(商品服务)
l________ taodong-shop-service-member(会员服务)
l________ taodong-shop-service-order(订单服务)
l________ taodong-shop-service-pay(支付服务)
l________ taodong-shop-service-search(搜索服务)
l________ taodong-shop-service-spike(秒杀服务)
l________ taodong-shop-service-sso(单点登录服务)
l________ taodong-shop-service-weixin(微信服务)
l________ taodong-shop-service-integral(积分服务)
l________ taodong-shop-service-auth(OAuth授权验证服务)
l____ taodong-shop-portal(门户)
l________ taodong-shop-portal-cms(管理系统)
l________ taodong-shop-portal-search(搜索系统)
l________ taodong-shop-portal-spike(秒杀系统)
l________ taodong-shop-portal-sso(秒杀系统)
l________ taodong-shop-portal-web(门户系统)
l________ taodong-shop-portal-pay-web(支付系统)
l____ taodong-shop-api-dto(DTO)
l________ taodong-shop-api-item-dto(商户服务DTO)
l________ taodong-shop-api-member-dto(会员服务DTO)
l________ taodong-shop-api-order-dto(订单服务DTO)
l________ taodong-shop-api-pay-dto(支付服务DTO)
l________ taodong-shop-api-search-dto(搜索服务DTO)
l________ taodong-shop-api-spike-dto(秒杀服务DTO)
l________ taodong-shop-api-sso-dto(单点登录服务DTO)
l________ taodong-shop-api-weixin-dto(微信服务DTO)
l____ taodong-shop-common(通用框架)
l________ taodong-shop-common-core(核心工具类)
l________ taodong-shop-common-web-core(web核心工具类)
l________ taodong-shop-common-xxlsso-core(单点登录系统核心工具类)
l____ taodong-shop-pay-plugin(支付插件)
l________ taodong-shop-union-plugin(银联支付插件)
l________ taodong-shop-alipay-plugin(支付宝支付插件)

6. 功能实现

6.1 项目立项&基础设施搭建

  • 《淘东电商项目(01) - 需求讨论与技术选型》
  • 《淘东电商项目(02) - 项目结构初定》
  • 《淘东电商项目(03) - 父类配置》
  • 《淘东电商项目(04) - 注册中心及Feign远程调用》
  • 《淘东电商项目(05) - Swagger及网关统一管理API》
  • 《淘东电商项目(06) - Linux固定IP设置以及安装Docker》
  • 《淘东电商项目(07) -GitLab简介以及Docker部署》
  • 《淘东电商项目(08) -Docker搭建Maven私服仓库》
  • 《淘东电商项目(09) -Maven私服的上传与下载详解》
  • 《淘东电商项目(10) -Apollo分布式配置中心管理application.yml》
  • 《淘东电商项目(11) -Apollo分布式配置中心管理Swagger》

6.2 微信公众号&注册功能

  • 《淘东电商项目(12) -搭建企业级微信公众号》
  • 《淘东电商项目(13) -项目整合WxJava》
  • 《淘东电商项目(14) -公众号获取注册码功能》
  • 《淘东电商项目(15) -项目配置信息分类(Apollo Namespace命名空间)》
  • 《淘东电商项目(16) -会员注册功能》
  • 《淘东电商项目(17) -DTO接口细分》
  • 《淘东电商项目(18) -全局异常捕获》
  • 《淘东电商项目(19) -日志打印》

6.3 会员唯一登录功能

  • 《淘东电商项目(20) -会员唯一登录》
  • 《淘东电商项目(21) -Redis如何与数据库状态保持一致?》
  • 《淘东电商项目(22) -Canal数据同步框架》
  • 《淘东电商项目(23) -门户界面》
  • 《淘东电商项目(24) -获取验证码功能》
  • 《淘东电商项目(25) -门户注册功能》
  • 《淘东电商项目(26) -门户登录功能》
  • 《淘东电商项目(27) -门户登出功能》
  • 《淘东电商项目(28) -QQ授权登录实现思路》
  • 《淘东电商项目(29) -动静分离的实现思路》
  • 《淘东电商项目(30) -解决分布式Session共享问题》

6.4 会员SSO单点登录功能

  • 《淘东电商项目(31) -SSO单点登录(XXL-SSO案例)》
  • 《淘东电商项目(32) -SSO单点登录(集成SSO认证服务)》
  • 《淘东电商项目(33) -SSO单点登录(改造SSO认证服务登录界面)》
  • 《淘东电商项目(34) -SSO单点登录(Client端集成)》
  • 《淘东电商项目(35) -SSO单点登录(登录功能完善)》
  • 《淘东电商项目(36) -SSO单点登录(退出功能)》
  • 《淘东电商项目(37) -SSO单点登录(高可用实现思路)》

6.4 分布式日志采集

  • 《淘东电商项目(38) -Docker下安装ES&Kibana(一次填完所有的坑)》
  • 《淘东电商项目(39) -商品搜索服务数据库设计》
  • 《淘东电商项目(40) -Docker下安装Logstash(一次填完所有的坑)》
  • 《淘东电商项目(41) -利用Logstash自动同步数据库内容到ES(超详细)》
  • 《淘东电商项目(42) -利用Logstash自动同步数据库内容到ES(多文件方式)》
  • 《淘东电商项目(43) -MQ与Logstash实现数据库同步到ES的区别》
  • 《淘东电商项目(44) -Docker下搭建ElasticSearch集群》
  • 《淘东电商项目(45) -Docker下Kibana与Logstash的ES集群配置(一次填完所有的坑)》
  • 《淘东电商项目(46) -商品搜索服务功能的实现》
  • 《淘东电商项目(47) -商品搜索服务功能的实现(集成拼音分词器)》
  • 《淘东电商项目(48) -ELK+Kafka分布式日志收集(原理篇)》
  • 《淘东电商项目(49) -ELK+Kafka分布式日志收集(docker下搭建kafka)》
  • 《淘东电商项目(50) -ELK+Kafka分布式日志收集(实现篇)》
  • 《淘东电商项目(51) -全局异常日志采集(ELK+Kafka)》

6.5 聚合支付

  • 《淘东电商项目(52) -聚合支付开篇》
  • 《淘东电商项目(53) -银联支付案例源码分析》
  • 《淘东电商项目(54) -银联支付案例(同步与异步)》
  • 《淘东电商项目(55) -支付系统核心表设计》
  • 《淘东电商项目(56) -支付系统分布式事务的解决方案》
  • 《淘东电商项目(57) -聚合支付(支付令牌接口)》
  • 《淘东电商项目(58) -聚合支付(基于设计模式自动跳转支付接口)》
  • 《淘东电商项目(59) -聚合支付(集成银联支付)》
  • 《淘东电商项目(60) -聚合支付(集成支付宝)》
  • 《淘东电商项目(61) -聚合支付(基于模板方法设计模式管理支付回调)》
  • 《淘东电商项目(62) -聚合支付(基于模板方法设计模式管理支付回调-支付宝)》
  • 《淘东电商项目(63) -聚合支付(多线程日志收集)》
  • 《淘东电商项目(64) -聚合支付(XXL-JOB任务调度平台整合)》
  • 《淘东电商项目(65) -聚合支付(异步对账)》
  • 《淘东电商项目(66) -聚合支付(基于RabbitMQ解决分布式事务-积分场景)》

6.6 互联网安全架构

  • 《淘东电商项目(67) -互联网安全架构设计(方法论)》
  • 《淘东电商项目(68) -互联网安全架构设计(黑名单拦截及MD5加签)》
  • 《淘东电商项目(69) -互联网安全架构设计(XSS攻击防御)》
  • 《淘东电商项目(70) -互联网安全架构设计(搭建开放平台-OAuth)》
  • 《淘东电商项目(71) -互联网安全架构设计(网关验证AccessToken)》
  • 《淘东电商项目(72) -互联网安全架构设计(责任链模式重构网关流程)》

6.7 秒杀系统

  • 《淘东电商项目(73) -秒杀系统(前端优化)》
  • 《淘东电商项目(74) -秒杀系统(库存超卖解决方案)》
  • 《淘东电商项目(75) -秒杀系统(用户操作频率限制)》
  • 《淘东电商项目(76) -秒杀系统(完整代码实现)》
  • 《淘东电商项目(77) -秒杀系统(小结)》
  • 《淘东电商项目(78) -秒杀系统(服务保护)》

淘东电商项目(79) -项目Github开源相关推荐

  1. 淘东电商项目(27) -门户登出功能

    引言 本文代码已提交至Github(版本号:42c2ed4af58dac7388e399a1f3606baf4c57744e),有兴趣的同学可以下载来看看:https://github.com/ylw ...

  2. 淘东电商项目(68) -互联网安全架构设计(黑名单拦截及MD5加签)

    引言 本文代码已提交至Github(版本号:d439ec96b39dc0adf0d697cbc6bfc87c1c3b7dc8),有兴趣的同学可以下载来看看:https://github.com/ylw ...

  3. 淘东电商项目(47) -商品搜索服务功能的实现(集成拼音分词器)

    引言 本文代码已提交至Github,有兴趣的同学可以下载来看看:https://github.com/ylw-github/taodong-shop 在上一篇博客<淘东电商项目(46) -商品搜 ...

  4. 淘东电商项目(14) -公众号获取注册码功能

    引言 在上一节<淘东电商项目(13) -项目整合WxJava>,主要讲解如何把WxJava框架整合到我们的电商项目,并完成了"鹦鹉学舌"的功能. 代码已提交至Githu ...

  5. 淘东电商项目(35) -SSO单点登录(登录功能完善)

    引言 本文代码已提交至Github(版本号:725238a1d0c829ee28cdef0ffe49e5f1c0020a2b),有兴趣的同学可以下载来看看:https://github.com/ylw ...

  6. 淘东电商项目(26) -门户登录功能

    引言 本文代码已提交至Github(版本号:8f3a993f0f9b92071437d16ed290e27ac1c64cde),有兴趣的同学可以下载来看看:https://github.com/ylw ...

  7. 淘东电商项目(20) -会员唯一登录

    引言 在上一节<淘东电商项目(19) -日志打印>,主要讲解「淘东项目」slf4j日志框架的基本使用方法. 本文代码已提交至Github(版本号:e2b2700c36fdaef263681 ...

  8. GitHub开源项目学习 电商系统Mall (三) SpringBoot+MyBatis搭建基本骨架

    mysql数据库环境搭建 下载并安装mysql5.7版本 设置数据库账号密码 创建数据库mall 导入Mall数据库脚本 https://github.com/macrozheng/mall-lear ...

  9. github开源项目大集合(1)

    github开源项目大集合 目前包括: Android 开源项目第一篇--个性化控件(View)篇  包括ListView.ActionBar.Menu.ViewPager.Gallery.GridV ...

最新文章

  1. XDP/eBPF — BPF
  2. c语言编写程序数一下 1到100的所有整数中出现多少次数字9
  3. 交叉表 列字段排序_PowerBI创建日期表
  4. 一个栈输入序列为1,2,3,4,5,则下列序列中不可能是栈的输出序列是?
  5. 微型计算机内存为8m,通常说一台微机的内存容量为8M,指的是_______。
  6. ywy_c_asm题
  7. matlab的可视化视频,MATLAB的可视化(一)
  8. centos7如何安装cloud-init
  9. QT分析之QApplication的初始化
  10. python做excel表格代码_python读写Excel表格的实例代码(简单实用)
  11. mysql 中电话号码_类型-电话号码和地址的mysql数据类型
  12. Mac上的免费数据库可视化工具:Sequel Pro
  13. 谷粒商城笔记 + 完整代码 + 课件资料(基础篇)(学习记录)
  14. [C#][转载]Sqlite操作大全
  15. 2016届腾讯实习生招聘上海站回忆版
  16. 在 Go 中处理恐慌
  17. linux gprs 拨号上网,linux下用wvdial实现gprs拨号上网
  18. 菜鸟读财报,如何从上市公司财报中挖情报?--微博转载
  19. 【pyqt5】实现选择文件界面
  20. Linux操作系统基础知识(一)

热门文章

  1. 『牛角书』鸿蒙开发小小播放器
  2. Android 设置背景颜色透明度
  3. 查看话单日志和性能日志有效信息的流程
  4. PLC编程软件在线调试程序的方法
  5. ie8 ajax访问不了https,真正解决IE不能访问HTTPS的问题
  6. fastadmin 权限问题
  7. Git与Git可视化工具TortoiseGit-小乌龟安装和配置
  8. 航天安网高清视频无损压缩解决方案—IDC机房监控系统案例
  9. Android学习之 两个Fragment之间传递信息
  10. 小榕SQL注入工具使用