SOHU-DBProxy 开源项目教程

SOHU-DBProxy 开源项目教程

1、项目介绍

SOHU-DBProxy 是由搜狐数据库团队开发维护的一个基于 MySQL 协议的数据中间层项目。它在 MySQL 官方推出的 MySQL-Proxy 0.8.3 版本的基础上,修改了大量 bug,添加了很多功能特性。目前已经在搜狐的多个业务线上使用,主要功能包括:

  • 事务级的多路连接复用
  • 负载均衡提高读性能,支持动态扩展
  • 动态添加的 SQL 审核和过滤,能够统计长时间运行影响性能的 SQL 并阻止其运行
  • 用户连接限制
  • 自动摘除宕机的 DB
  • 读写分离(当前版本没有,代码和测试已经完成,没有合并到当前版本)

项目托管地址:SOHU-DBProxy GitHub

2、项目快速启动

安装

  1. 克隆项目到本地:

    git clone https://github.com/SOHUDBA/SOHU-DBProxy.git
    cd SOHU-DBProxy
    
  2. 编译安装:

    ./autogen.sh
    ./configure
    make
    sudo make install
    

配置

  1. 编辑配置文件 dbproxy.conf

    [mysql-proxy]
    proxy-backend-addresses = 127.0.0.1:3306
    proxy-lua-script = /usr/local/share/mysql-proxy/rw-splitting.lua
    
  2. 启动 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 开源项目。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值