主机和备机双方只须要进行数据复制便可,无须进行状态判断和主备切换这类复杂的操做面试
应用场景:内部的后台管理系统mongodb
从机须要提供读操做,须要考虑主从复制延迟、客户端感知主从关系等问题服务器
应用场景:写少读多的新闻网站架构
1)主备间的状态传递的内容 和渠道分布式
2)切换时机和切换策略微服务
3)如何解决数据冲突学习
1)互联式 网站
主备机直接创建状态传递的渠道spa
设计须知:通道故障问题比较难处理设计
2)模拟式
备机模拟成客户端,根据读写操做的响应状况来判断主机状态
设计须知:判断有限,可能出现双主
3)中阶式
引入zookeeper 或keepalived 这样的第三方中介,主备上报状态到中介,中介最终决策 ,例如mongodb
设计须知: 必须保证中介的高可用
两台服务器都是主机,相互之间复制,客户端任意选择读写
设计须知:不适用注册,库存等数据
1)主机如何将数据复制给备机
消息队列同步、 备机相互复制
2)备机如何检测主机状态
经过中介zookeeper等
3) 主机故障后,如何选择新主机
经过中介zookeeper等
适用场景:数据量不大,集群机器数量很少,例如zookeeper集群
1)均衡性
2) 容错性
3) 可伸缩性
适用场景: 数据量巨大,集群机器数量庞大,例如 hbase集群、Elasticsearch集群、gossip协议集群
不一样分区处于不一样地理位置,每一个分区储存一部分数据,下降故障影响比例
1)分区规则
国家间的分区仅用于数据备份,城市分区用于解决业务上的异地多活
2)数据量
数据量越大,设计复杂越大
3)复制规则
集中式: 备份储存在总的备份中心
互备式:每一个分区随机储存另一个分区的备份数据
独立式:每一个分区有本身独立的备份中心,规则已提早指定好
好资料第一时间分享,中华石杉老师的分布式面试突击视频教程,最清晰总体的微服务全面解读的PDF,体系化的Java路线资料整理的Github,亿级电商架构的视频实战课程,你值得拥有
获取方式: 关注公众号乔志勇笔记, 后台回复"学习资料" !!