1.背景
并发写场景下,由于微服务的系统环境复杂,不可避免的会出现 【机器、缓存、数据库、依赖服务】等出现问题,导致数据不一致的情况产生。
影响大且广:
1、数据不一致问题在线上可能会产生故障
2、数据不一致会导致长尾错误、牵一发动全身。
3、数据不一致会导致三方业务扩散,到全量数据不准确。
挑战严峻:
A、人工成本高:处理问题时效长、人员精神紧张、需具备领域知识。
B、舆情风险大:数据一致性问题随机性高,可产生的故障等级高。
C、系统可靠性不足:开发成本越来越高、缺少成熟方案、拆东墙补西墙。
2、解决方案&痛点
经过了上面的一堆问题若干年的折腾,优化了无数的细节,最终总结出了一个结论:“高并发场景下的数据不一致问题由于其调度复杂性和计算的精度丢失,不可从微观层面避免”。
系统分析后,根据问题的影响程度和覆盖范围的不同,综合来看可以从三个层面来分析:
业务中的更多调度场景梳理
3、自愈调度平台解决方案
3.1 业务架构图
3.2 业务流程图
场景一:自愈场景
场景二:异常场景止血、自愈
场景三:抽样核验自愈
3.3自愈平台的技术目标
3.4 自愈调度平台后台设计
3.4.1 任务后台
3.4.1.1 创建任务编辑页
- 基础设置:名字、功能描述、类型等
- 任务配置:根据任务类型不同设置不同参数,如HSF需设置分组、版本、方法等
- 执行配置:超时设置、重试设置、执行时间设置(比如延迟执行,定时执行)等
3.4.1.2 创建场景&关联预案编辑页
- 基础设置:名字、场景code、场景描述等
- 任务配置:可选择多个任务配置优先级以及执行方式(异步/同步)
- 告警配置:可根据时间情况配置告警提醒
3.4.1.3 场景&关联任务管理页
3.4.2 监控中心
3.4.2.1 监控后台
总结
在追求高性能的过程中,根据CAP原则,必须平衡一致性与其他系统特性的取舍;虽然可能牺牲强一致性,但为了确保业务连续性,我们必须保障系统达到最终一致性。