面试一线互联网大厂?那这道题目你必须得会!( 五 )

此外还需要考虑,数据分片是不是要可以支撑扩容?

比如一开始设置的分片数量是10个,存在10台机器上。结果现在发现10台机器都扛不住了,需要扩容到20个分片,放在20台机器上才可以。

是不是要支持数据分片的扩容以及自动数据负载均衡迁移?也就是10个分片的数据自动均匀分配给扩容后的20个分片。

所以这种分布式以及可伸缩的架构,是另外一个非常核心的点。

我个人同样比较建议大家研究一下Kafka在这块的架构设计,非常的优秀,采用了Partition的概念实现数据分片,支持分布式的数据存储,而且还支持动态扩容。

面试一线互联网大厂?那这道题目你必须得会!

数据宕机场景下的高可用架构

大家此时就要考虑另外一个问题了,就是一旦数据分布式存储之后,那么每台机器上都有一部分数据。

万一这台机器宕机了呢?那么数据是不是就丢失了?

推荐阅读