
1) 【一句话结论】:为财产险核保系统设计容灾方案,需构建“数据多级备份(主从半同步复制+增量日志备份)+高并发负载均衡(LVS)+快速主备切换(ZooKeeper心跳检测)+全链路监控(资源+业务指标)”体系,确保理赔高峰期系统高可用,核心目标为RTO≤5分钟、RPO≤1小时,保障数据一致性与服务连续性。
2) 【原理/概念讲解】:老师讲解:
3) 【对比与适用场景】:
| 方案类型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 主从半同步复制 | 主服务器处理写,从服务器半同步确认 | 写事务提交需至少一个从服务器确认,故障切换时数据不一致风险低,延迟约1-2秒 | 写多读多,对数据一致性要求高的系统(如财产险核保,保单数据变更需实时同步) | 需配置半同步参数(如MySQL的semi_sync_master_enabled=1),避免延迟过高 |
| 增量日志备份 | 主服务器记录增量操作日志,从服务器日志重放同步 | 仅同步新增数据,恢复时间约30秒(增量日志),数据延迟≤1分钟 | 读多写少,对切换速度要求高的系统(如节假日高峰期,读请求多,切换后快速恢复读服务) | 需保证日志不丢失(如配置日志保留策略),否则数据不一致 |
| LVS | IP虚拟化,内核级负载均衡 | 高并发,QPS>10万时延迟<1ms,性能优于Nginx | 大规模高并发场景(如财产险理赔高峰期,QPS峰值达10万+) | 配置复杂(需熟悉内核参数),需结合Keepalived实现高可用 |
| Nginx | 反向代理,应用层负载均衡 | 配置简单,支持会话粘性、健康检查,QPS<5万时延迟<2ms | 中小规模集群(如测试环境或QPS<5万的场景) | 会话粘性可能导致资源利用率不均,需动态调整 |
| ZooKeeper心跳检测 | 用于管理健康节点,每秒检测一次 | 检测延迟≤2秒,故障检测及时 | 故障转移的核心组件,确保主备切换快速 | 需配置心跳间隔(如1秒),避免检测延迟导致故障节点未及时切换 |
4) 【示例】:
server-id=1; log-bin=binlog; binlog-do-db=property_insurance; semi_sync_master_enabled=1; semi_sync_master_timeout=10000;server-id=2; relay-log=relay-bin; read-only=1; semi_sync_slave_enabled=1;ipvsadm -A -t 192.168.1.100:80 -s wrr -a -r 192.168.1.10:80 -g -w 1 -a -r 192.168.1.11:80 -g -w 1 -a -r 192.168.1.12:80 -g -w 1vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.1.100
}
}
# 检测主节点健康
check_master_health() {
zk_status=$(zkCli.sh -server 192.168.1.20:2181 get /property_insurance/master_status)
if [ "$zk_status" != "healthy" ]; then
# 预同步数据(如同步最近1分钟日志)
sync_logs() {
mysql -h slave -u root -p'password' -e "STOP SLAVE; CHANGE MASTER TO MASTER_HOST='192.168.1.11', MASTER_LOG_FILE='binlog.000001', MASTER_LOG_POS=4321; START SLAVE;"
}
sync_logs
# 更新ZooKeeper状态
zkCli.sh -server 192.168.1.20:2181 set /property_insurance/master_status "healthy"
fi
}
binlog dump --start-position=4321 --stop-position=4321+(仅同步增量日志)mysqlbinlog -r -l 0 -d property_insurance -h master -u root -p'password' > relay-bin.logmysql -h slave -u root -p'password' < relay-bin.log5) 【面试口播版答案】:
各位面试官好,关于财产险核保系统在理赔高峰期的容灾方案,核心是通过构建“数据多级备份、高并发负载均衡、快速主备切换和全链路监控”的体系,确保系统高可用。具体来说:
6) 【追问清单】:
semi_sync_master_enabled=1,并设置超时时间(如10秒),避免延迟过高。7) 【常见坑/雷区】: