一、分布式
1.1 分布式id的生成方案有哪些?
- UUID
- 数据库主键自增
- Redis自增
- 雪花算法
1.2 分布式锁有哪些解决方案?
- Redis的分布式锁,大多使用基于Redisson进行拓展。
加锁的时候加过期时间,并且使用看门狗来观察锁是否过期。- Zookeeper。顺序临时节点。
- 基于数据库。主键或唯一索引的唯一性。
1.3 什么是分布式系统的幂等性?
不论执行多少次,操作都和执行一次的结果是相等的。
例如A对B请求服务,假如A第一次请求B没有回应,在分布式系统中,存在重试机制,A会再次请求,假如第一次成功了,就需要做幂等性操作。
1.4 幂等性的解决方案?
- 数据库的唯一索引。新增数据的时候,多次操作最终结果一致。
- token机制:使用token+jvm进程锁或者token加redis分布式锁。每次操作先请求到一个token进行加锁,第一次请求先删除锁,删除成功才操作。第二次请求发现删除锁失败就不操作。