文档介绍:百度数据库中间层技术介绍
尹博学
dba@
2012
目录
MySQL数据库集群面临的问题
数据库中间层整体设计
数据库中间层主要功能模块和策略
数据库中间层应用
数据库中间层发展
2012
MySQL数据库集群面临的问题
随着数据库流量和服务器数量增长,数据库集群面临很多
问题:
•如何实现应用程序与集群的解耦,降低运维成本?
•如何实现数据库服务的高可用?
•如何将并发控制前移,保护数据库系统?
•如何降低数据库开发成本?
•……
2012
目录
MySQL数据库集群面临的问题
数据中间层整体设计
数据库中间层主要功能模块和策略
数据库中间层应用
数据库中间层发展
2012
数据库中间层的整体设计
数据库中间层(dbproxy)的定义:
•屏蔽集群内部细节
• MySQL集群读写分离
•连接池
•负载均衡
•访问控制
•可集群化部署,运维
关键要求:
•对数据库应用透明
•性能要好:高并发,低延迟
2012
2012
数据库中间层的整体设计
百度数据库集群三层架构
2012
数据库中间层的整体设计
Dbproxy逻辑框架设计:
2012
数据库中间层的整体设计
Dbproxy的程序框架设计:
•进程? or 线程?
• MySQL API? or 按照协议与机制自己实现?
2012
数据库中间层的整体设计
Dbproxy支持并发设计:
•进程并发设计:
EPOLL驱动
...
•应用程序<->dbproxy<->MySQL阶段划分
handshake_send, auth_read, auth_result_send, query_read,
……
2012