基于.Net 技术栈剖析电商项目

一. 业务背景

1. 计划

   以商城项目为基础,剖析秒杀功能、购物车功能等

 先把单体架构优化到极致,然后向微服务架构转变,并分析当中遇到的各种问题。

2. 用到的技术栈和工具

    服务器:centos8

    数据库:MySQL 5.7  ----集群

    基础框架:Asp.Net Core +EF Core + Dapper

    日志框架:待定

    缓存框架:redis 5.0 ----集群

    消息队列:RabbitMQ

    负载均衡:Nginx

    消息总线框架:CAP

    分布式事务:待定

    配置中心:待定

    测试工具:Jmeter

    其它微服务组件:Consul + IDS4 + Polly

    静态资源处理:CDN + 静态页面

    前端:uni-app (基于Vue)

    最终部署:K8S 

    其它语法:Lua

    涉及到的一些问题的解决方案:

    Redis 雪崩、击穿、穿透的解决:

    分布式ID的解决:

    恶意请求的解决:

    重复消费的解决:

    如何防黄牛:

  

二. 架构图

 

 后续计划中

 

 

三. 系列章节

阶段一:单体架构系列

       第一节:基本概念、业务分析、单体架构的搭建

       第二节:抢单流程优化1(小白写法→lock写法→服务器缓存+队列(含lock)→Redis缓存+原子性+队列【干掉lock】)

       第三节:抢单流程优化2(单品限流→购买数量限制→方法幂等)

       第四节:抢单流程优化3(lua整合限流、购买限制、方法幂等、扣减库存)

       第五节:拉模式的消费者优化(数量块和时间块)

       第六节:基于Cap框架引入事件总线机制(RabbitMQ+SQLServer) 和 下单成功后的方案剖析

       第七节:Nginx限流和负载均衡、页面cdn、IIS部署优化、后续计划

       第八节:xxxxxxxxxxxxxxxxxxxxxxxxx

 

阶段二:核心方案和组件积累

       第一节:电商项目分析、系统架构图、分布式文件存储

       第二节:微服务网关GateWay、加密算法、微服务鉴权JWT、分布式ID生成方案

       第三节:lua详解、OpenResty详解、网站首页高可用(nginx+lua+redis实现广告缓存)

       第四节:数据同步解决方案canal 和 商品详情页面静态化方案Thymeleaf

       第五节:用户认证、单点登录、Oauth2、购物车的实现方案、 订单结算、下单方案

       第六节:本地事务与分布式事务、Cap理论/Base理论、基于Seata实现分布式事务、基于消息队列实现分布式事务--未完

       第七节:微信扫码支付、推送支付通知、超时未支付订单的处理方案

       第八节:秒杀业务分析、异步下单、防止恶意刷单、防止重复秒杀、接口隐藏、接口限流

       第九节:xxxxxxxxxxxxxxxxx

       第十节:xxxxxxxxxxxxxxxxx

 

 

阶段三:微服务架构实操【暂时搁置!】

       第一节:xxxxxxxxxxxxxxxxx

       第二节:xxxxxxxxxxxxxxxxx

       第三节:xxxxxxxxxxxxxxxxx

       第四节:xxxxxxxxxxxxxxxxx

       第五节:xxxxxxxxxxxxxxxxx

       第六节:xxxxxxxxxxxxxxxxx

       第七节:xxxxxxxxxxxxxxxxx

 

 

 

 

!

  • 作       者 : Yaopengfei(姚鹏飞)
  • 博客地址 : http://www.cnblogs.com/yaopengfei/
  • 声     明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
  • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
 

 

posted @ 2020-09-29 15:14  Yaopengfei  阅读(8545)  评论(12编辑  收藏  举报