微服务--分布式锁
首先了解CAP模型,对后面了解分布式锁有所帮助,对分布式设计也由一定思考
CAP模型
A:Availability 中文叫做"可用性"。请求任何一台服务器数据必须给予回应
C:Consistency 中文叫做"一致性"。读写操作是同一条数据
P:先看 Partition tolerance,中文叫做"分区容错"。分布式锁针对的就是微服务系统,必然是多个服务器,那么微服务必然满足分区容错。
参考文档:CAP模型
分布式锁实现方案对比
redis | zookeeper | etcd | |
---|---|---|---|
一致性算法 | 无 | paxos | raft |
CAP | AP | CP | CP |
高可用 | 主从 | N+1可用 | N+1可用 |
接口类型 | 客户端 | 客户端 | http/grpc |
实现 | sentNE | createEphemeral | restful API |
- rdis实现方案CP模型,对一致性要求不绝对的业务情况下可以使用,如:发送消息,即便多次发送也不会有业务大的影响
- zookeeper实现方案实现为创建临时节点,使用watch机制,执行效率、扩展能力、社区活跃度方面低于etcd
吐槽
本来是打算写一篇分布式锁的文章做记录,真的写的时候发现还差得远,人家写的挺好的,就当整理资料吧。