基于.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】)
第四节:抢单流程优化3(lua整合限流、购买限制、方法幂等、扣减库存)
第六节:基于Cap框架引入事件总线机制(RabbitMQ+SQLServer) 和 下单成功后的方案剖析
第七节:Nginx限流和负载均衡、页面cdn、IIS部署优化、后续计划
阶段二:核心方案和组件积累
第二节:微服务网关GateWay、加密算法、微服务鉴权JWT、分布式ID生成方案
第三节:lua详解、OpenResty详解、网站首页高可用(nginx+lua+redis实现广告缓存)
第四节:数据同步解决方案canal 和 商品详情页面静态化方案Thymeleaf
第五节:用户认证、单点登录、Oauth2、购物车的实现方案、 订单结算、下单方案
第六节:本地事务与分布式事务、Cap理论/Base理论、基于Seata实现分布式事务、基于消息队列实现分布式事务--未完
第七节:微信扫码支付、推送支付通知、超时未支付订单的处理方案
第八节:秒杀业务分析、异步下单、防止恶意刷单、防止重复秒杀、接口隐藏、接口限流
阶段三:微服务架构实操【暂时搁置!】
!
- 作 者 : Yaopengfei(姚鹏飞)
- 博客地址 : http://www.cnblogs.com/yaopengfei/
- 声 明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
- 声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。