京东商城 史季强 - 亿级流量下数据库技术保障实践
2020-02-27 155浏览
- 1.亿级流量下数据库技术保障实践 京东商城 资深架构师 史季强
- 2.目 录 CONTENTS • 一、架构和负载 • 二、大促之前-未雨绸缪 • 三、大促期间-严阵以待 • 四、大促之后-继往开来
- 3.基础架构 网络 CDN 应 用 集 群 消 息 JMQ 集 群 JMQ JMQ 缓 存 集 JIMDB 群 JIMDB 数 据 库 集 群
- 4.数据库架构
- 5.负载对比
- 6.目 录 CONTENTS • 一、架构和负载 • 二、大促之前-未雨绸缪 • 三、大促期间-严阵以待 • 四、大促之后-继往开来
- 7.大促之前-未雨绸缪 架构优化 压测演练 数据结转 沟通交流 SQL优化 扩容升级
- 8.大促之前-沟通交流 确认今年重点保障的项目和系统,明确薄弱环 节,然后进行专项优化改造 协商应急方案和降级方案,无论多么缜密的备战, 也要按照一定会出问题进行准备,因此对于故障 的应急处理和降级方案,都需要在之前进行充分 的沟通
- 9.大促之前-沟通交流 故障现象 表层原因 深层原因 某次大促期间,某系统服 务不是很稳定,导致线上 交易收到影响。 系统CPU接近100%,前 端业务操作超时,数据库 访问慢 u 大量高并发的慢SQL 进行读取导致 u 没有进行读写分离 u DBA对系统熟悉度不够, 重视程度不够,对出现 的慢SQL没有足够重视 u 研发人员编码不规范, 架构设计不合理
- 10.大促之前-SQL优化 差的SQL语句对数据库的影响是最致命的 优化起来最具成效 能最快解决系统性能问题 消灭所有的慢SQL是DBA永远的目标!
- 11.大促之前-SQL优化 慢SQL平台 邮件推送 新优化平台
- 12.大促之前-SQL优化 慢SQL平台 邮件推送 新优化平台
- 13.大促之前-扩容升级 设备预算 1.兵马未动粮草先行 2.沟通需求 3.做好硬件资源规划 4.提前安装备用 拆分升级 1.垂直拆分 2.水平拆分 3.硬件升级 快速部署 1.自动化平台 2.快速部署 3.弹性扩容
- 14.大促之前-数据结转 清理 在线阶段 在线数据 结转 近线数据 归档阶段 离线数据 清理 销毁阶段 生产库 历史库 归档库 刻录 磁带库
- 15.大促之前-压测演练 切换演练 全链路压测 定制切换策略 • 从库直接切域名 • 宿主机宕机自动切换 • 按集群 • 按项目 • 按机房 验证应急预案 • 按照预案操作 • 模拟预案场景 • 确认预案可行性 MHA • 备库是否可以承担业务 • 主从数据一致性 验证主从性能 独立系统压测 发现潜在问题 • MHA的bug • 用户和权限 • 集群架构问题 • 域名生效问题 • JDBC缓存问题
- 16.大促之前-压测演练 切换演练 全链路压测 独立系统压测 故障表现 表层原因 深层原因 整改方案 系统压测期间,某系统服务异常,数据访问出错,导致线上交易受到影响 主库有大量高并发的写入操作,导致从库延迟加大,影响到从库的读业务,进而影响到 整个系统的可用性。 系统架构设计不合理,对读一致性要求很高的业务,不应该在数据库从库上进行读取 应用架构: 修改程序里面的超时时间,关闭非核心日志表的写入,降低非核心应用的连接数,并 做好限流和降级开关,必要时切换到主库进行读取。 数据库: u 扩容一台高性能的从库,用于支撑读一致性较高的业务,同时对核心表进行碎片整 理,删除低效和无用的索引。 u 修改mysql的Log刷盘模式,减少主从复制的延迟,编写自动化脚本,在大促开始前, 自动修改MySQL的Log刷盘策略,待大促过后再修改回来,如下: set global sync_binlog = 0; set global innodb_flush_log_at_trx_commit = 2;
- 17.大促之前-架构优化 高并发频繁读写的数据 前端部署Redis,JIMDB进行缓冲 日志类和大字段数据迁移出MySQL 采用MongoDB、Cassandra等NoSQL或者JFS( Jingdong Filesystem ) 复杂的查询 采用Solr、Elasticsearch 、Hadoop等分布式数据处理平台
- 18.目 录 CONTENTS 一、架构和负载 二、大促之前-未雨绸缪 三、大促期间-严阵以待 四、大促之后-继往开来
- 19.大促期间-严阵以待 24小时值班 01 进入十一月就开始进行通宵值班 JDBS自动化运维平台 06 利用JDBS自动化运维平台,辅助DBA 进行支撑和保障 应急故障处理 05 密切监控性能问题和硬件报警,及 时进行处理 顺利 平稳 04 集中办公 大促期间,DBA和研发集中在一起办公,有问题便 于及时沟通 02 严格控制上线 所有线上操作都需要部门总监甚至 VP的审批 03 多维度审核操作 所有线上执行,需要DBA双人进行 审核和操作,并且要研发确认操作 时间
- 20.大促期间-运维自动化平台 资源管理 • 服务器+Docker的管理 • 实例和库的管理 • 集群的管理 • 服务器上下线管理 • …… 自动化运维 • MySQL集群自动搭建 • MHA自动切换 • DNS自动切换 • 自动备份恢复系统 • 故障智能处理 • …… 自助化上线 • 自动建库建表 • SQL审核执行 • 自动授权 • 数据自动提取 • …… 全方位监控 • MDC监控平台 • 数据库监控平台 • 集群架构查询 • 连接数查询 • ……
- 21.目 录 CONTENTS 一、架构和负载 二、大促之前-未雨绸缪 三、大促期间-严阵以待 四、大促之后-继往开来
- 22.大促之后-继往开来 总结经验 运维自动化 运维可视化 运维智能化 软件 工程 项目
- 23.THANK YOU