SOHU-DBProxy 开源项目教程
SOHU-DBProxy搜狐公司强大的数据库中间件项目地址:https://gitcode.com/gh_mirrors/so/SOHU-DBProxy
1、项目介绍
SOHU-DBProxy 是由搜狐数据库团队开发维护的一个基于 MySQL 协议的数据中间层项目。它在 MySQL 官方推出的 MySQL-Proxy 0.8.3 版本的基础上,修改了大量 bug,添加了很多功能特性。目前已经在搜狐的多个业务线上使用,主要功能包括:
- 事务级的多路连接复用
- 负载均衡提高读性能,支持动态扩展
- 动态添加的 SQL 审核和过滤,能够统计长时间运行影响性能的 SQL 并阻止其运行
- 用户连接限制
- 自动摘除宕机的 DB
- 读写分离(当前版本没有,代码和测试已经完成,没有合并到当前版本)
项目托管地址:SOHU-DBProxy GitHub
2、项目快速启动
安装
-
克隆项目到本地:
git clone https://github.com/SOHUDBA/SOHU-DBProxy.git cd SOHU-DBProxy
-
编译安装:
./autogen.sh ./configure make sudo make install
配置
-
编辑配置文件
dbproxy.conf
:[mysql-proxy] proxy-backend-addresses = 127.0.0.1:3306 proxy-lua-script = /usr/local/share/mysql-proxy/rw-splitting.lua
-
启动 DBProxy:
mysql-proxy --defaults-file=dbproxy.conf
3、应用案例和最佳实践
案例一:搜狐云上的应用
SOHU-DBProxy 在搜狐云上广泛使用,通过与 MySQL 主从架构结合,提供了无单点的 MySQL 服务。具体架构如下:
- Keepalived:提供高可用性
- DBProxy:作为数据中间层,处理读写分离和负载均衡
- MySQL 主从:提供数据存储和复制
最佳实践
- SQL 审核和过滤:定期检查和优化长时间运行的 SQL,确保数据库性能
- 连接限制:根据业务需求设置合理的连接数限制,避免资源耗尽
- 自动摘除宕机的 DB:确保服务的稳定性和可用性
4、典型生态项目
MySQL 主从复制
MySQL 主从复制是 SOHU-DBProxy 的重要组成部分,通过主从复制可以实现数据的备份和读写分离。
Keepalived
Keepalived 用于提供高可用性,确保 DBProxy 和 MySQL 服务在单点故障时能够自动切换。
MySQL Router
MySQL Router 是 MySQL 官方提供的一个轻量级中间件,可以与 SOHU-DBProxy 结合使用,提供更丰富的功能和更好的性能。
通过以上模块的介绍和实践,您可以快速上手并深入了解 SOHU-DBProxy 开源项目。
SOHU-DBProxy搜狐公司强大的数据库中间件项目地址:https://gitcode.com/gh_mirrors/so/SOHU-DBProxy