(7)分库分表<架构解决方案>

sharding:提升db并行处理能力,解决搜索瓶颈    cluster:db集群,只是扩展并行处理能力

1.常用中间件:

tddl,sharding-jdbc  二八法则:80%读,20%写

    1)基于代理:更灵活        2)应用集成:直连db,读写高出10-20%

2.分库分表影响

join如何用,无法用外键约束,全局唯一id和连续性id

3.主备切换

    1)基于配置中心:spring ioc启动时,与zk建立会话连接,将数据源加载到本地

    2)基于keepalived:m 宕机,s没切到m,短暂不可用,写请求进来,造成数据丢失怎么办?缓存对db做补偿。或写到mq中,待消费再写到db

4、主备间强制数据同步(半同步复制)

    s收binlog,m才算完成事务,流量大时会影响tps

    5.6后有GTID,保证一致,m宕机重启后,作为s存在

5、订单冗余表(买卖家)

双写:同步+异步

1)2-5:优先写到买家表,立即写到mq中,卖家同理。

2)线上检测补偿:消费买家,没在窗口期(默认2s)收到卖家消息,认为不一致。

3)db要幂等,不包含哪里,补偿哪里(买/卖家)

6、binlog增量同步

canal工作原理:伪装成s,3像m发dump请求,4解析binlog

先买家,再写卖家

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容