谷粒商城一介绍及基本架构todo

项目进度 前言
工作两年,技术依然在小白附近徘徊,即使有一些进步,但也不值一提
两年的工作内容,几乎就是cv加一些简单的百度,从细节方面说,经历的细节不算多,从架构方面讲,自己远远达不到那个级别 。
谷粒商城主要是看尚硅谷在B站的教程,由于项目成熟,从开发到部署很完整,百度的生态也很好,决定从0开始开发谷粒商城,直到部署上线 。
该笔记虽然是从头开发,但并不会事无巨细的详解每一个部分,每一种技术,因为就是混也是混两年了,多少还是懂一些的,但是会从头到尾,从架构图,设计文档,sql,到重难点源码、命令都会记录
看到有一些朋友收藏了这篇文章,如果你也正打算做这个项目,欢迎大家私信我,我们可以互相沟通 。
看这篇文章的话我还是不建议大家收藏,没什么意义,这就和大部分书架上的书一样,
希望可以有人看到第二篇,第三篇 。。。,再来收藏,更有意义一些
谷粒商城系列文章最后更新时间,2023.5.11
到此为止,分布式高级篇已经完成,我暂时不打算看接下来的部分,接下来偏运维多一些,打算复习谷粒商城和java部分,然后找工作,今年的行情这么惨淡,不知道能不能找到合适的
分布式基础篇总结
这个事儿啊,总是会和自己当初想象的不一样,
最开始的想法是要记录每一步,后来发现有些东西太简单,不值得记录,
然后就打算说那就只记录最重要的,现在是到第10篇了,就这样一篇篇写下去,发现又有冲突了,
之前接触过一些es,做过一些笔记,觉得如果整合到谷粒商城太麻烦,所以还是跟之前的笔记做一个补充,等真正应用到谷粒商城的时候再来下一篇笔记
分布式高级篇总结
服务之间是分布式的,将一个大型的商城业务拆分成了各种不同的服务,由这些服务共同组合成我们的商城 。
nacos,注册中心与配置中心
将所有服务的配置都放到配置中心,这样通过nacos的控制台可以直接修改配置,修改完之后微服务就能动态的在不下线的情况下就能应用到最新的配置 。,流量哨兵,限流&熔断&降级seata,分布式事务oss,对象存储feign,声明式远程调用,网关 + ,服务链路追踪 用到的其他技术
接口幂等性
希望服务中的所有接口都是幂等的,这样的话无论是调多次或一次最终的结果都是一样的,这是我们整个分布式系统中业务功能接口的保证 。
可以通过加锁,数据库的乐/悲观锁字段加事务等等来做接口幂等性 。
我们在系统中使用的是令牌机制,类似于验证码,发一个令牌,发请求的时候带上,用过一次就销毁 。
事务
分布式事务 。
seata,最好用的场景是后台管理系统,并发性能要求不高 。
比如添加一个商品,保存的时候要把它的优惠,库存等各种信息在各个系统全部保存 。要成功都成功,要失败都失败 。
如果是并发性能超高,比如高并发下单等,都是使用最终一致性 。
缓存与分布式锁
在分布式系统中,要保证接口的吞吐量,使性能往上提升,缓存是必须的 。所以我们只有有了缓存才能极大的加速我们整个系统 。
所以高并发中缓存是最重要的一个手段 。
同时我们使用缓存期间又碰到了使用缓存的一些问题,缓存的击穿、雪崩、穿透 。
我们使用分布式锁来解决这些问题,当大并发量请求全部要来查数据库,它先来查缓存的时候,我们使用分布式锁来锁住,只有一个请求进来,它查不到缓存再去查数据库,所以最终只会给数据库放一条查询 。而其他人得到锁以后,他们只会下次继续来看一下缓存就行了,不去查数据库 。