wangzhiyong

“数据”是一个公司的核心资产,数据丢失或不可用则将是一个严重事故。如何做到高可用,其实三个核心点: 冗余,可用,扩容

冗余一般都是复制机制将数据分发在不同的机器上,保证数据非单点存储

可用保证服务不中断,当master挂了,能自动切到salve 上

扩容一般当数据存储容量不足,可通过分片或分区来往外增加增加容量空间

 

  • MYSql

1.镜像,基本冗余保证了,但当服务不可用时需要手动切换另外一台。

2.镜像+KeppLive  , 冗余有了,也能自动切了,但Kepplive 挂了呢?

3.PCX或MHA  , 冗余有了,能自动切,但不能扩容,机器至少三台

4.MYCat中间件 ,支持分片扩容。

以上4种方案可组合使用,没有最好,只有适合不适合。

 

  • Reids

1.主从模式,冗余有了,无法自动切

2.主从+哨兵 ,可以自动切了

3.Codis , 集群并支持动态扩容

 

  • RabbitMQ

镜像+集群   冗余有了,能自动切,但没有扩容的好方案,目前知道就  元数据结构或队列中全量数据的同步。

 

  •  KafKa

有分区,可以动态扩容,增加新的Broker 或 Partition即可,集群就不必说了必须有的。

 

以上简单总结,欢迎探讨。

 更多精彩文章,请关注公众号:

分类:

技术点:

相关文章: