分布式锁、会话、事务等学习记要

MrIronHand 2020-01-10

1.zookeeper使用场景

分布式协调、分布式锁、元数据/配置管理、HA高可用场景

2.Redis分布式锁

普通实现方法(key+随机值)缺陷:redis失效时会导致锁失效

RedLock算法

3.zookeeper分布式锁

4.分布式session

Tomcat+Redis, Spring session+Redis

5.分布式事务

XA(两阶段提交)方案-可通过Spring+JTA实现、

TCC(try-confirm-cancel)方案、

本地消息表方案、

 可靠消息最终一致性方案、

 最大努力通知方案

6.分库分表

proxy层中间件:cobar、atias、mycat(当前较活跃、有运维成本、适合大公司)

client层中间件:TDDL、sharding-jdbc(当前较活跃、不需要部署代理层、适合中小型公司)

垂直拆分、水平拆分

不停机双写方案

动态扩容缩容

全局ID:

单独数据库自增ID(适用于:并发低、数据量大)、

UUID(缺点:太长、不适合主键)、

系统当前时间(需要时间戳+业务字段组合而成)、

snowflake算法(开源分布式ID生成算法、64位long型)

8.读写分离、MySQL主从复制、MySQL主从延迟导致的问题

9.高并发系统架构

系统拆分+缓存+MQ+分库分表+读写分离+ES

——来源于石杉码农学院

相关推荐