分布式数据库动态扩缩容操作的实际操作性如何?

目前各分布式数据库均宣称支持动态节点扩容和缩容,大家在主流分布式数据库是否进行过动态扩容和缩容操作,实施过程是否有什么问题,尤其是动态缩容操作,个人感觉相对难度较大点。...显示全部

目前各分布式数据库均宣称支持动态节点扩容和缩容,大家在主流分布式数据库是否进行过动态扩容和缩容操作,实施过程是否有什么问题,尤其是动态缩容操作,个人感觉相对难度较大点。

收起
参与37

查看其它 7 个回答火龙猫的回答

火龙猫火龙猫架构师华为技术有限公司

数据库分两部分,一部分是提供业务服务的进程,一部分是需要持久化的数据。我们说扩缩容的时候,一般也要讨论这两部分。

一般而言扩容缩容是应对业务峰谷的。所以真正需要扩缩的其实是服务进程部分,这部分最好是需要时就拉起,不需要就关闭。

但这有两个问题要解决,首先如果服务进程不是无状态的,那么必然涉及到数据的搬迁重布局,也就是服务的扩容缩容实际上要带动数据一起。第二个问题是扩容缩容的前提是扩出来的服务能和主节点实时同步,而且能读能写。这样扩容出来的服务才能对业务增加吞吐,但是开源主从数据库要做这点并不容易。如果基于中间件切片,可能要重新切。

所以我的看法是,要能灵活扩容缩容,一定要把数据持久化部分独立出来,让数据库服务变成无状态。

然后无状态化的数据库要能实现一致性多读多写(对于MySQL可以参考我分享的文章《怎样才是分布式数据库存算分离的正确姿势》里面介绍的方法)。

接下来独立出来的持久化部分,涉及到的是容量扩容(容量缩容比较少见,除非把库删了)。因此只要选择可以平滑扩容的外置独立存储就行,这种企业级存储一般都能做到,选择面也是比较宽的。

互联网服务 · 2023-01-28
浏览1262

回答者

火龙猫
架构师华为技术有限公司
擅长领域: 数据库分布式系统服务器

火龙猫 最近回答过的问题

回答状态

  • 发布时间:2023-01-28
  • 关注会员:9 人
  • 回答浏览:1262
  • X社区推广