1、中国软件技术大会CHINA SOFTWARE TECHNOLOGY CONFERENCE网易大规模微服务单元化与高可用设计大规模分布式系统面临的问题高可用数据一致性突发流量故障诊断及快速恢复面临的问题高可用保障多机房与单元化大规模系统高可用战略设计高可用架构设计增加系统冗余,避免单点机房网络出入口要有主备线路多机房单元化部署,组件集群化部署,实现城市级机房故障迁移能力研发实现良好的无状态化处理,幂等服务接口设计根据服务重要度实现熔断降级、限流保护策略每个服务都要设计有效探活接口,以便健康检查感知到服务状态通过制定良好的代码检查规范和静态扫描工具,最大化限制因为代码问题造成的系统不可用DBA数据
2、库数据量的持续监控数据库性能的持续监控系统上线前的SQL审核故障演练和性能压测定期进行问题汇总及复盘定期组织故障演练,及系统的全链路线上压测。从整体上防范于未然运维系统灰度、蓝绿发布,降低系统上线发布风险完善监控及应对机制,对系统各节点、应用、组件全面地监控,能够第一时间快速发现并解决问题持续关注线上系统网络使用、服务器性能、硬件存储、中间件、数据库灯指标第一,研发每一个微服务都有实现良好的无状态化处理,幂等服务接口设计。根据服务重要度实现熔断降级、限流保护策略每个服务都要设计有效探活接口,以便健康检查感知到服务状态通过制定良好的代码检查规范和静态扫描工具,最大化限制因为代码问题造成的系统不可
3、用第二,高可用架构设计第三,运维第三,运维第四,DBA索引设计容量过载服务安全索引未覆盖索引效率不高Innodb表无主键冗余索引存储空间满内存不够,物理读过多网络带宽撑满高并发低逻辑读造成的CPU 瓶颈弱密码超权限访问公网IP直接暴露公网SQL 注入第四,DBA软硬件参数优化运行状态用戶访问CPU节电IO调度策略Raid10,WBNUMASwapnessXFSDB buffer cacheDB redo size.活跃连接数可用连接数逻辑读物理读Redo binlog 产生量QPSTPS复制状态复制延迟慢SQL高消耗SQL热表分布式SQL 第五,故障演练和性能压测测试资源管理场景管理任务管理版
4、本管理性能测试平台机器管理成员管理测试脚本和数据管理脚本上传脚本下发测试执行和报告管理单接口压测脚本编写测试数据业务场景压测实时报告分析资源监控风险分析历史报告采用梯度压力,看服务的性能变化情况,评估出服务的最大容量值。容量测试在达到停止条件之后,继续增加压力,检验服务集群在失效状态下的表现。摸高压测在峰值压力下,保持30分钟(可讨论)稳定峰值稳定性测试针对秒杀类业务,制定秒杀测试场景秒杀场景测试多级限流,保护系统稳定提供服务限流演练非核心业务降级,提升整体服务能力降级演练高可用部署架构选型架构类型可用性优势问题单体应用-网络开销小扩展性差,维护困难单机房服务化应用级高可用网络开销小,解耦可扩
5、展容量受限,机房级单点同城多活阶段一机房级高可用突破单机房容量瓶颈非必要的跨机房开销大同城多活阶段二机房级高可用非必要的跨机房网络开销小,提供机房级容灾城市级单点,仍存在非必要的跨机房开销异地多活单元化城市级高可用异地容灾,可用性高成本较高,要求各应用组件实现单元化大规模系统高可用战术设计背景集群水平伸缩能力受限机房容灾需求数据中心规模限制成本需求需要具备跨地域异地能力应用层异地多活单元保证城市级高可用每个多活单元采用双机房保证机房级高可用每个机房中采用多副本保证实例级高可用缓存层缓存采用多集群单元化复制缓存件每个集群单元中采用多副本主从复制数据库层数据库采用主从复制或MGR数据库每个集群单元
6、中采用DDB分库分表轻舟平台层平台组件异地多活单元保证了城市级高可用平台组件每个多活单元采用双机房保证机房级高可用平台组件每个机房中采用多副本保证实例级高可用同城多活大规模系统故障恢复方案故障层级预计影响范围预计SLA影响恢复手段应用单实例故障(进程异常退出,FGC等)单个或部分用户请求失败。应用有多副本自动重试即可正常无影响K8S通过健康检测到异常,自动重启容器应用单节点故障(主机硬件异常,掉电等)部分用户请求失败。应用有多副本自动重试即可正常1分钟K8S检测到节点异常会自动迁移该节点上的容器中间件单节点故障(Zookeeper、Eureka)ZK故障为从节点无影响;ZK故障为主节点,在重选