集群策略选择vs生产需求点(负载/可用性、灾备/安全性)
• 集群策略分类
负载均衡靠:
-主从。读写分离。
灾备靠:
-同步( 主备,一定带同步功能。主从,一定带同步功能。主主,一定带同步功能。由于主备、主主不常用,同步基本等价于主从。)
-分片/副分片(同步的进阶版,帮助主从解决单点容量和性能限制)。
总结,要想负载和灾备同时满足,要么主从,要么主从+分片/副分片(优化版主从),要么拼夕夕( 主主写不同步实现写分离,再复制节点实现读分离)。
• 典型案例分析
mysql-主从:主从
redis-主从:主从
es:主从+分片/副分片。优越。
redis-cluster:主从+分片/副分片。优越。
rocketmq:分片(topic) + 主从/副分片(主主写+副节点读)。topic作用相当于分片,上级broker不同步主主写(不是严格意义上的主主,因为只写不读)和下级broker同步从读(每个主一个从)整体等价于主从。这种方式和es、redis-cluster的分片/分片副本方式相比,区别只是前者的副分片不会和其他分片的主分片存放在同一个节点而已。例如同样4个节点4个分片,前者2主2从节点,主里2主分片,从里2副分片;后者节点没有主从之分,每节点1主分片1副分片。前者根据节点分主从进而决定读写主体,后者根据分片主副分主从进而决定读写主体。前者分片分配到各节点,然后复制到副节点,后者复制分片,然后主副分片一起分配到各节点。前者只能是偶数节点,后者可以是奇数节点。前者先写分离(主主写,分片分配到节点)再读分离(复制节点,同时复制分片),后者先读分离(主从,其实是复制分片)再写分离(分片和分片副本分配到节点)。优越。