微服务

微服务无损扩容

December 9, 2020

微服务无损扩容 技术挑战 拆分的不好,热点数据节点成为瓶颈 数据迁移、路由改变,能否让业务没有感知 扩容失败,如何回滚? 整个过程,如何维持数据一致性? 如何拆分 业务设计表的时候,需要决定哪个键是 shardkey 如何让业务没有感知 时间点如凌晨自动切换;也可以让业务根据实际情况判断,人工切换 整个过程如何高可用 新建数据同步 (sync、async) 关系 持续进行数据校验,计算延时差,小于某个阈值,比如 5 秒 小于阈值后,有请求进来,拒绝掉,让业务去重试,业务的响应时间可能有秒级影响,不过整个持续时间很短。数据很快追上来,这个时候原子修改路由,路由切换好了,就可以重新接受请求了 慢慢地延迟删除冗余数据,防止 IO 波动过大 分布式事务 操作同一个节点,使用普通事务 操作多个节点,使用两阶段提交 参考 腾讯会议核心数据库TDSQL,如何做到快速无损在线扩容?