- cdn实现原理
- 通过cdn技术把源站的内容缓存到多个节点。用户向源站域名发起请求时,请求会被调度到最接近用户的服务节点,直接由服务节点直接快速响应,有效降低用户访问延迟,提升可用性。
- cname 别名:给源站域名添加CNMAE,别名为加速节点的域名。当用户向源站发起请求时,dns服务器解析源站域名时会发现有CNMAE记录,这时dns服务器会向CNAME域名发起请求,请求会被调度至加速节点的域名。
- 分布式锁
- redis实现分布式锁:
- 加锁:用redis的setnx命令,之后需要配置expire超时时间;但是不是原子性的,可以用lua脚本或者直接用set()命令可以设置超时时间;
- 解锁:del key;
- 设置锁超时:防止锁没有被显式释放,资源永远被锁住。
- 锁误解除:在value中设置线程加锁的唯一性标识✅;
- 超时解锁导致并发:1. 将过期时间设置足够代码逻辑执行结束;2.
- zookeeper实现分布式锁:
- redis实现分布式锁:
参考
- cdn: https://www.jianshu.com/p/14dede92b02f
- redis分布式锁:https://xiaomi-info.github.io/2019/12/17/redis-distributed-lock/