CAP 理论和 BASE 理论
Paxos、Raft、Zab协议
亿级负载均衡怎么做?
如何实现分布式Session?方案的优劣势比较
如何实现分布式事务?方案的优劣势比较
分布式关系式数据库有哪些方案?优劣势比较
高并发秒杀怎么实现?
1分布式全局唯一ID底层实现
- UUID
- 数据库自增ID
- 数据库多主模式
- 号段模式
- Redis
- 雪花算法(SnowFlake)
- 滴滴出品(TinyID)
- 百度 (Uidgenerator)
- 美团(Leaf)
https://juejin.cn/post/6844904065747402759#heading-8
重点看标黄部分
2分布式锁
什么时候使用
1.定时任务统计数据时候 做数据统计和计算
2.读缓存的时候如果键不在了的话,枷锁从数据库里面读取出来
https://blog.csdn.net/m0_67645544/article/details/124768505
2.1 redis锁的命令
set key value [EX seconds] [PX milliseconds] [NX|XX]
EX seconds:设置失效时长,单位秒
PX milliseconds:设置失效时长,单位毫秒
NX:key不存在时设置value,成功返回OK,失败返回(nil)
XX:key存在时设置value,成功返回OK,失败返回(nil)
案例:设置name=p7+,失效时长100s,不存在时设置
set name p7+ ex 100 nx
--jedis的写法
redisTemplate.opsForValue().setIfAbsent("lock",uuid,300,TimeUnit.SECONDS);
--ressdion的写法
RLock lock = redisson.getLock("anyLock");// 最常见的使用方法
lock.lock();
// 加锁以后 10 秒钟自动解锁// 无需调用 unlock 方法手动解锁
lock.lock(10, TimeUnit.SECONDS);
// 尝试加锁,最多等待 100 秒,上锁以后 10 秒自动解锁 boolean res = lock.tryLock(100,
10, TimeUnit.SECONDS)
2.2 redis死锁后如何处理
加锁失效时间 如上图所示
3限流算法
https://juejin.cn/post/6967742960540581918
4 CAP和BASE理论
https://blog.csdn.net/qq_42651904/article/details/116886170
5分布式事务
https://juejin.cn/post/7022800217518899237#heading-77
https://baijiahao.baidu.com/s?id=1712163514749816361&wfr=spider&for=pc
6分布式接口幂等性
https://juejin.cn/post/6944559294939398158
7分布式session方案
https://juejin.cn/post/6844904012936904712