高并发铁律
第一选择(从前往后的顺序):加缓存、静态化、集群、拆字诀(分布式)、同步转异步、限流熔断降级。
高并发首选策略
1、访问频率高;2、更改频率低;3、一致性要求不高。
使用缓存技巧
更改数据使用双删策略
缓存一致性问题
无论怎么做,都有漏洞。一般情况就是4种情况处理:(1)实时更新(比如更新数据时删除缓存);(2)定时任务更新缓存(比如12306余票显示)(3)准实时更新(甩锅第三方比如mq);(4)定时任务(每天凌晨全量刷新)。
缓存击穿和雪崩解决方案
(1)针对同一个sql只允许一个线程去查询(加锁的方式解决);(2)缓存预热(3)改被动失效为主动失效
缓存穿透解决方案
布隆过滤器,不存在的数据直接拦截。就算布隆过滤器放进去了数据库不存在的数据也没关系,已经大大过滤了大部分数据。布隆过滤器可能是分布式的,单独的一个服务,只要请求即可。
什么是事务
原来不是原子性操作,在并发环境下,我们需要模拟成原子性的操作(要不全成功,要么全失败)。
XA
1、分布式场景下,XA方式,ACID式事务,对表的锁定时间太长。
Base理论(柔性事务)
BA:基本业务可用性,S:柔性状态(中间态不一致),E:最终一致性。为了可用性,牺牲一致性。
异步确保性
mq
分布式事务的框架
Lcn框架
阿里的分布式框架
seata框架
分布式事务的排名
2pc/3pc/tcc/mq/最大努力型(类似微信付款)/seata AT 都会努力兼容tcc模式
传统的调度工具
(1)timer;(2)spring-task;(3)quartz