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
——来源于石杉码农学院