AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

打造O2O业务的数据库支撑平台—百度数据库变更发布系统 DTS实践 by 王剑英

发布者 dber
发布于 1464570653242  浏览 6334 关键词 数据库, Redis, MySQL 
分享到

第1页

百度数据库变更发布系统

百度 DBA 王剑英 2016.4



第2页

2016-4-22





第3页

简介





 王剑英 2011年浙大硕士毕业加入百度  MySQL内核开发,百度MySQL分支维护者  支持凤巢,网盟,百度钱包,糯米等业务。  MySQL DTS (Data Transmission Service)



第4页

摘要

 需求背景  DTS架构与实现  DTS融合DB与Redis  DTS用于业务逻辑解耦  QA





第5页

场景1:实时检索建库

 如何更快的检索到最新上架商品?





第6页

场景2: DB&Cache数据同步

 DB 数据变动时,如何保证数据一致

Redis实时同步MySQL数据的变更吗?





第7页

MySQL + 消息队列 ?





 本质需求:便利的增量导出接口让数据流动起来



第8页

DTS:数据库即消息队列

 为MySQL增加消息队列属性  可用SQL增删改查也可以按需订阅





第9页

DTS:支持变更发布的MySQL 9

(⑴)内置消息队列 (⑵)写数据库->消息生产 (⑶)消息格式化 (4) 事务提交->消息发布



第10页

DTS:消息订阅API



 扩展 MySQL C API



接口 函数名



连接 查询 订阅 读取 断链



mysql_connect() mysql_query(conn,SQL) mysql_dts_sub(conn,GTID,Topics) mysql_dts_read_next_event(conn) mysql_close(conn)





第11页

DTS:消息订阅API

 扩展支持 PHP/Java版本的消费接口





第12页

DTS:消息传输 12

 消息传输优化,应对安全以及远距离大数据量传输要求



第13页

DTS:消息订阅模型

 不同消费者看见不同消息视图 (1)动态订阅主题,由库表组合而成 (2)可针对单个用户配置速度限额





第14页

DTS:关于高可用

 数据多副本 通过MySQL 主从复制实现  全局唯一订阅偏移,消息不重不漏  订阅入口为无状态的proxy集群





第15页

DTS:业务部署架构





第16页

DTS:关键特性

实时性



可运维性



DTS



可靠性



一致性





第17页

DTS:性能与应用

 技术指标 (1) 单通道消息推送速度 25W/S (或30MB/S) (2) 推送时延毫秒级别 (3) 可靠性,与数据库服务同级别(>99.99%)。





 线上应用 (1) 部署实例数1000+ (2) 每日消息推送数百亿级别。 (2) 覆盖百度凤巢,糯米,百度钱包,个人云,公有云



第18页

DTS应用:DB&Cache融合

 传统架构

(1)写数据库 读Cache (2)读DB数据填充Cache (3) Cache失效方法

过期时间 or 人工失效

(4) 每个业务来一套





第19页

DTS应用:DB&Cache融合架构 19  DB&Cache融合 打造高效的基础存储服务

(1)MySQL协议访问 (2)部署拓扑对业务透明 (3)proxy自动读写分离 (4)Redis实时同步MySQL



第20页

DTS应用: DB&Cache查询逻辑

 proxy自带SQL Parser

 写入操作进入主库  范围查询进从库  KV类查询进Redis

 结果集为MySQL协议



第21页

DTS应用: DB&Cache数据分布

 DB容量大于Redis 需 切片

 小表

存Hash结构体

 大表

db+table+pk 做Key 切片

 切片信息上报dbroxy



第22页

DTS应用: DB&Cache一致性保证

 延时过大摘除Redis

 负载过大则对单机限 流

 全量Cache方案

 热点填充方案 proxy + DTS



第23页

DTS应用: 传统交易逻辑

 交易链路过长

全流程需通知十几个模块

 扩展性

新投递消息需在业务流 程埋点

 数据一致性

消息投递可能失败





第24页

DTS应用: DTS异步消息投递 24

 核心交易流程精简  DTS异步消息回调  数据库驱动业务



第25页

总结

 DTS 高可靠低延时的变更推送服务 (1)数据库即消息队列 (2) DB& Cache融合 (3) 数据库事件驱动业务逻辑

 Ready for 百度公有云RDS, 敬请期待。





第26页

QA

 百度DBA团队 (1)负责百度MySQL,Redis 研发及运维 (2)业务覆盖全百度,公有云RDS,私有云XDB.

 诚招天下英豪 邮件 dba@baidu.com 数据库,Cache, 开发,运维





支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。