虚拟业务系统高可用性设计.pptx
文本预览下载声明
京东虚拟业务系统高可用性设计虚拟业务系统虚拟业务系统高可用性实践大促如何确保高可用虚拟业务系统特点非标品尚 客 单 价多业务线(20+产品线)业务复杂程度不一大量第三方供应商交互新业务上线迅速系统维护量大加油卡充值度假会展差旅微软激活码 低频率机票演出票尚频率门票生活缴费火车票电影票 游戏点卡低 客 单 价视频酒店流量充值流量加油站 话费充值虚拟业务系统架构v1.0系统抽象度不高重复开发,效率低系统稳定性难保证虚拟业务系统架构v2.0基础公共能力下沉商品、订单等模型抽象业务组件提炼业务流程平台化编排配置部署架构多实例多机房部署同机房不同机柜ES集群MySQL一主多从缓存(JimDB)一主多从虚拟业务系统虚拟业务系统高可用性实践大促如何确保高可用高可用性的度量A = MTBF / (MTBF + MTTR)MTBF = 平均故障间隔时间(Mean Time Between Failures) MTTR = 平均恢复时间(Mean Time to Recovery)提高系统的可用性的两个途径提高MTBF:减少故障降低MTTR:快速解决故障影响可用性的因素与应对方法方法冗余因素单点故障结果提高MTBF提高MTBF依赖故障降级、异步化超出承载限流提高MTBF降低MTTR监控报警、应急预案定位、恢复慢冗余设计 – 消除单点基础设施层多IDC多DNS多CDN多路由器双网卡应用层多实例跨机架服务无状态数据层数据库master/ slave缓存一主多从ES集群数据冗余实现 – 复制应用同步双写可立刻读JMQ虚拟商品中心性能差应用异步双写性能好 有延迟商品MQ虚拟商品全量ES虚拟商品库(分库分表)数据冗余实现 – 复制利用底层数据存储复制机制虚拟订单中心对应用无侵入开发量少binlog虚拟订单库Binlake延迟较严重虚拟订单ES( jiesi1)数据本地化应用场景依赖外部数据高频访问数据变化频率低实现方式定时主动数据同步第三方通知降级场景依赖的外部系统出现故障KISS降级非关键依赖原则开关(手动/自动) 方案审查、演练方法性能降级:比如缓存降级到ES功能降级:比如优惠劵服务故障降级支付方式例子降级 – 虚拟商品系统单品页Lua自动降级调用HTTP接口开关控制是否实时写全量ES 开关控制是否写快照1Jimdb1Nginx虚拟商品shop端2POP商品 微信手Q抢购系统 虚拟商家 图片服务 视频系统虚拟商品中心3商品MQ垂直搜索index开关控制是否读Jimdb44342垂直搜索主服务商品全量ES 商品快照ES搜索全量ESJimdb商品主库分库异步化-事件驱动(火车票)典型场景访问第三方系统不稳定(网络等)实现方式事件驱动业务流程失败利用MQ重试机制注意幂等限流典型场景机票防刷;抢火车票接入层限流Nginx+Lua+RedisIP、账户、地区等应用限流服务框架设置(方法级)限流监控与报警系统监控(CPU,内存、负载等)网络监控(网络流入量,流出量等磁盘监控(使用率、读写速度等)容器监控 (线程数、SWAP使用等服务监控(TP99, 调用量等)业务监控(订单状态等)JVM监控))虚拟业务系统虚拟业务系统高可用性实践大促如何确保高可用大促备战发现薄弱环节梳理关键流程容量估计优化 性能 可用性1团4Keyword2演练 故障模拟 应急方案压测系统压测、稳定性测试全链路压测TP99, CPU, 内存…3系统压测测试环境/预发环境关注吞吐量、性能和稳定性常态化全链路压测在公网模拟真实用户行为从CDN节点压测使用Forcebot执行压测监控访问量、TP99、CPU等容量规划规划基于历史数据、促销计划预测项目机房1机房2机房…2016.11.11流量(万/秒))2017.6.18流量(万/秒)2017.11.11预计流量(万/秒实例数服务能 力(万/秒)实例数服务能 力(万/秒)实例数服务能 力(万/秒)XXXX241.6241.6120.81.623)根据压测分配资源扩容方法应用水平扩容(增加docker)硬件垂直扩容(内存、升级SSD等)基础设施扩容(数据库分库分表、ES分片扩容、缓存分片扩容等)全场景故障模拟演练开发人员自助服务故障模拟种类系统故障网络故障服务故障可视化效果数据应急预案数量:虚拟业务200+类型:应用/依赖演练:与故障模拟结合
显示全部