1.SOA
- 面向服务
- 服务之间的松耦合
2.优点:单点:“雪崩”导致瓶颈
SOA:熔断,重试
挑战:如何保证高可用性、稳定性
高可用性:集群
3.阶段
服务化----->平台化阶段------->划分很多服务
4.数据库支持业务持续发展
1)读写分离
减缓读压力
2)垂直分表、水平分表
减缓写压力
垂直分表(可以按字段取模存储)--->尽量平均存储,有时为了方便查询会根据地点去储存数据,会导致数据热点,可以使用缓存去存储
5.异步化
减库存------>MQ(1.减库存2.其他服务操作)
这里需要保证mq的高可用性
CAP理论:C一致性,A可用性,P分区容错性
分布式只能保存其中两个的特性
BASE理论
基本可用---->服务降级
柔性状态----->中间状态,允许延时
最终一致性--->TCC,反面:强一致性
柔性事务:
消息分布式事务 MQ
TCC Try->Confirm->Cancel
反思:MQ的化需要保证MQ的高可用性,TCC的化不需要维护MQ,但是操作会繁琐一点
6.秒杀
1)将数据缓存,避免秒杀前访问数据库
2)隐藏秒杀链接
乐观锁:失败,重试
3)缓存库存(缓存到内存里面)
7.限流
nginx +TMD(阿里)
TMD框架对cookie,以及域名进行限流
服务端限流 sentinel框架
8.流量调度
解决硬件之间的差异,通过权重来分流量