标签: 分布式
分库分表策略与热点治理
当单表涨到几亿行、单库连接打满,分库分表就从「可选项」变成「生存项」。但分片一旦定错键,后期重构的代价接近重写。所以策略要在一开始就想清楚。 分片键是第一步,也是最重要的一步 分片键决定数据怎么散、请求怎么走。选错键,要么数据倾斜,要么跨分片查询泛滥。 选高频等值查询字段:比如账户号、客户号,保证大多数请求落单分片。 避免低基数或单调递增:性别这种分片键会制造大分片;自增 ID 做键会集中在最新分片,形成写入热点。 兼顾关联查询:同一客户的账户、交易最好同片,减少跨片 JOIN。 -- 按客户号 …
当单表涨到几亿行、单库连接打满,分库分表就从「可选项」变成「生存项」。但分片一旦定错键,后期重构的代价接近重写。所以策略要在一开始就想清楚。 分片键是第一步,也是最重要的一步 分片键决定数据怎么散、请求怎么走。选错键,要么数据倾斜,要么跨分片查询泛滥。 选高频等值查询字段:比如账户号、客户号,保证大多数请求落单分片。 避免低基数或单调递增:性别这种分片键会制造大分片;自增 ID 做键会集中在最新分片,形成写入热点。 兼顾关联查询:同一客户的账户、交易最好同片,减少跨片 JOIN。 -- 按客户号 …
单元化架构:银行核心的容灾与扩展底座
单元化被讲成"异地多活的银弹",但它真正解决的问题只有两个:把故障爆炸半径收进一个单元,以及让容量可以按单元横向叠加。理解不了这两点,做出来的往往只是一套更复杂的分库分表。 为什么核心要做单元化 传统主备架构的困境是:备机平时不承载流量,切换时没人敢按那个按钮。因为没人验证过备机在真实压力下能不能扛住。 单元化把这件事变成常态:每个单元都在真实处理流量,每个单元都是完整的业务闭环——接入层、应用层、数据库全套齐备。某个单元挂了,把它的流量按客户维度切到其他单元,其他单元本来就在跑同样的代码和同样 …
单元化被讲成"异地多活的银弹",但它真正解决的问题只有两个:把故障爆炸半径收进一个单元,以及让容量可以按单元横向叠加。理解不了这两点,做出来的往往只是一套更复杂的分库分表。 为什么核心要做单元化 传统主备架构的困境是:备机平时不承载流量,切换时没人敢按那个按钮。因为没人验证过备机在真实压力下能不能扛住。 单元化把这件事变成常态:每个单元都在真实处理流量,每个单元都是完整的业务闭环——接入层、应用层、数据库全套齐备。某个单元挂了,把它的流量按客户维度切到其他单元,其他单元本来就在跑同样的代码和同样 …