当前位置: 首页 > 图灵资讯 > java面试题> java分布式面试题-分区容错性问题

java分布式面试题-分区容错性问题

来源:图灵教育
时间:2024-05-30 13:24:03
分布式系统对于错误包容的能力

通过限流、降级、兜底、重试、负载均衡等方式增强系统的健壮性

 

日志复制

1.Leader把指令添加到日志中,发起 RPC 给其他的服务器,让他们复制这条信息;

2.Leader会不断的重试,直到所有的 Follower响应了ACK并复制了所有的日志条目;

3.通知所有的Follower提交,同时Leader该表这条日志的状态,并返回给客户端;

 

主备(Master-Slave)

主机宕机时,备机接管主机的一切工作,主机恢复正常后,以自动(热备)或手动(冷备)方式将服务切换到主机上运行,MySQLredis中常用。

MySQL之间数据复制的基础是二进制日志文件(binary log fifile)。它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。

 

互备(Active-Active)

指两台主机同时运行各自的服务工作且相互监测情况。在数据库高可用部分,常见的互备是MM模式。MM模式即Multi-Master模式,指一个系统存在多个master,每个master都具有read-write能力,会根据时间戳或业务逻辑合并版本。

 

集群(Cluster)模式

是指有多个节点在运行,同时可以通过主控节点分担服务请求。如Zookeeper。集群模式需要解决主控节点本身的高可用问题,一般采用主备模式。