php+sqlrelay+mysql实现连接池及读写负载均衡

上一篇 /

下一篇  2008-04-02 18:25:19

/ 个人分类:MySQL

作者:ziqiu

sqlrelay.jpg(20.33 KB)

2007-8-31 14:26

在大型的web应用中数据库经常成为并发访问的一个瓶颈,为了有效的解决并发访问的瓶颈,利用多台数据库master-slave的模式来增加web的并发访问量。

master-slave模式是为了数据同步的问题。

sqlrelay解决连接池问题以及实现读写分离的均衡负载。

sqlrelay配置3个instance A/B/C,A负责从Master和slave读取数据,B负责写数据,且只写Master,C为router,负责调度应用。

php通过A还是通过B连接数据库。

在实际配置中,由于master承担了读写操作,那么在instance A的配置中,可以把从Master的连接稍微降小,把从slave连接读取数据的连接数稍稍增大以此进行平衡。

一、MySQL master/slave配置

################

#mster/slave配置

################

master:192.168.1.51

slave:192.168.1.50

1、master配置

/etc/my.cnf 中加入

binlog-do-db=book book为数据库名

确保

server-id=1

log-bin=mysql-bin

授权给rep用户进行复制操作

GRANT REPLICATION SLAVE ON book.* TOrep@192.168.1.50IDENTIFIED BY '123456';

重启master服务

2、配置slave

vi /etc/my.cnf

设置下面4行

server-id       = 2

master-host     =   192.168.1.51

master-user     =   rep

master-password =   123456

重启slave

3、把master的原始数据导入slave。

二、sqlrelay配置

当前行业中比较流行的连接池解决方案几乎都不支持php,经过多番努力终于在找到了一个开源的连接池技术--------sqlrelay。

sqlreplay支持的语言:

C C++ Perl  Python PHP Ruby  Java TCL Zope

sqlreplay支持的数据库:

Oracle MySQL mSQL PostgreSQL Sybase MS SQL Server   IBM DB2 Interbase Sybase SQLite ODBC MS Access

sqlreplay的网站

http://sqlrelay.sourceforge.net/。

基本思路:

1、配置2个实例用以最终处理业务

clubs-read

clubi-write

其中读取的 instance分别配置两个连接,且两个连接启动对等的连接数。

2、配置一个instance来调度读写操作,即clubr

通过router来区分读写连接不同的mysql数据库。

dbase="mysql" connections="10" maxconnections="20" maxqueuelength="5"

growby="1" ttl="60" endofsession="commit" sessiontimeout="600"

runasuser="nobody" runasgroup="nobody" cursors="5" authtier="listener"

handoff="pass" deniedips="" allowedips="" debug="none"

maxquerysize="65536" maxstringbindvaluelength="4000"

maxlobbindvaluelength="71680" idleclienttimeout="-1" maxlisteners="-1"

listenertimeout="0">

string="host=192.168.1.51;port=3306;db=book;user=club;password=club;"

metric="1" behindloadbalancer="no"/>

string="host=192.168.1.50;port=3306;db=book;user=club;password=club;"

metric="1" behindloadbalancer="no"/>

dbase="mysql" connections="10" maxconnections="40" maxqueuelength="5"

growby="1" ttl="60" endofsession="commit" sessiontimeout="600"

runasuser="nobody" runasgroup="nobody" cursors="5" authtier="listener"

handoff="pass" deniedips="" allowedips="" debug="none"

maxquerysize="65536" maxstringbindvaluelength="4000"

maxlobbindvaluelength="71680" idleclienttimeout="-1" maxlisteners="-1"

listenertimeout="0">

string="host=192.168.1.51;port=3306;db=book;user=club;password=club;"

metric="1" behindloadbalancer="no"/>

我来说两句

显示全部

内容

昵称

验证

提交评论

sqlrelay mysql_php+sqlrelay+mysql实现连接池及读写负载均衡相关推荐

  1. php+sqlrelay+mysql实现连接池及读写负载均衡

    本文主要介绍sqlrelay的配置安装.通过其性能和一些具体环境的测试来帮助开发者应用在相应的场合中去应付大并发的mysql数据库连接. 什么是sqlrelay? Sqlrelay是一个开源的数据库连 ...

  2. Keepalived+LVS+MySQL双主复制实现读写负载均衡及高可用

    目录 一.Keepalived和LVS简介 1. Keepalived简介 2. LVS简介 二.安装配置 1. 下载安装LVS 2. 下载安装Keepalived 3. Keepalived配置 5 ...

  3. mysql odbc连接池_Java Mysql连接池配置和案例分析--超时异常和处理

    前言: 最近在开发服务的时候, 发现服务只要一段时间不用, 下次首次访问总是失败. 该问题影响虽不大, 但终究影响用户体验. 观察日志后发现, mysql连接因长时间空闲而被关闭, 使用时没有死链检测 ...

  4. swoole 连接mysql_swoole教程:用swoole4操作mysql连接池之读写分离

    为什么要读写分离? 一般的系统都是读多写少,利用读写分离,可以提升mysql的效率 读写分离后,从库可以水平扩展 下面我们开始代码之旅吧 配置先改造: $config = [ 'host'=> ...

  5. 使用MySQL Router实现高可用、负载均衡、读写分离

    目录 一.MySQL Router简介 1. 功能 2. 架构 3. 使用 二.安装配置 三.自动失败切换 四.负载均衡 五.读写分离 六.多实例 1. 环境 2. 配置文件 3. 功能测试 参考: ...

  6. tomca7.0 mysql配置连接池_tomcat7.0+mysql连接池配置

    1.Tomcat 中直接使用的方法: 在conf/server.xml下的节点里配置resource,例如: auth="Container" type="javax.s ...

  7. vc2010访问局域网mysql_VC2010利用MySQL++访问mysql. 及连接池示例

    首先下载并安装mysql,我使用的为mysql 5.5版本,安装时注意安装c++的开发包. #1  下载mysql++,解压,  找到install.hta, 修改对应路径,指向vc2008所在路径, ...

  8. nodejs mysql 创建连接池

    用Nodejs连接MySQL 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javas ...

  9. php cli swoole mysql_[了解实践]Swoole、PHP与MySQL:连接池,swoole扩展实现真正的PHP数据库连接池。...

    背景:swoole的出现,包括PHP出现前,在新浪企业邮箱就有基于Sun Solaris 系统上面用c++写Mysql的长连接,那时候的长连接是基于RPC实现,对mysql那一端形成一个远程过程的调用 ...

最新文章

  1. tftp c++ 上传_如何在 Fedora 上建立一个 TFTP 服务器
  2. Unity内置的三套消息发送机制的应用实例
  3. SH1B LMR62014XMFE/NOPB
  4. JVM-并发-Java 内存模型
  5. Sudoku Extension UVALive - 4763
  6. 手动写一个搜索引擎(超详细)
  7. 【防火墙篇】01. 恢复出厂设置 ❀ Juniper 防火墙
  8. OPenCV4-颜色识别(二)三原色识别
  9. 超实用的Mac风扇控制系统:Macs Fan Control Pro mac中文版
  10. PAT1023 组个最小数给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小例如:给定两个0两个1三个5一个8得到的数字就是10015558
  11. 颜色的识别方法和探索 基于matlab
  12. 关于ELF格式文件里面的调试信息解读
  13. 达梦数据守护(主备)
  14. 鸟哥推荐php书籍,好书推荐(PHP方向)
  15. 初中信息技术面试计算机网络,2020下初中信息技术教师资格证面试试题及答案【1月10日上午】...
  16. 试用Microsoft Research的wallop
  17. 【AAAI-2019】STCKA-Deep Short Text Classification with Knowledge Powered Attention(基于知识驱动注意力的深度短文本分类)
  18. Fabric-iot:物联网中基于区块链的访问控制系统
  19. Java中的线程池(总结)
  20. ChatGpt中文角色大全

热门文章

  1. slice_Spring Boot Web Slice测试–示例
  2. ruby elixir_如何使用Elixir和Phoenix快速入门构建CRUD REST API
  3. java se/ee_嗨,您好 。 。 ! 您如何评价Java / Java EE技能?
  4. 无服务器安全性:将其置于自动驾驶仪上
  5. perl大骆驼和小骆驼_骆驼路线的主/从故障转移
  6. rest开发_REST 101开发人员专用
  7. Java EE MVC:处理表单验证
  8. hadoop综述_Hadoop书籍赠品–综述
  9. hibernate脏数据_Hibernate性能提示:脏收集效果
  10. linux openjdk_OpenJDK作为Linux上的默认Java