有多少种不同的方法对有状态服务进行缩容?怎么做需要迁移 / re-hash 的数据量最小

31次阅读

共计 279 个字符,预计需要花费 1 分钟才能阅读完成。

有状态服务例如:MySQL、PG、Redis(算半个吧毕竟当缓存用的时候不 care)、Prometheus

这些服务可以做 Sharding,例如 10 个 MySQL 实例负责 Hash(xx) % 10 的数据范围,Prometheus 可以通过 Operator 实现。

但是有些设计不当的场景,这些有状态的服务可能过度扩容了,例如扩到了 10 个 MySQL 实例,实际上过了某个时间(例如双 11)只需要 2 个就可以支撑业务。

有什么设计和缩容机制可以应对类似的场景呢?(PS:不需要局限于上面这个例子,例如等数据自然过期然后清理掉实例也算一种解决方案,不同的解决方案都适合什么样的场景?)

正文完
 0