mysql-proxy0.8版本读写分离测试总结

虽说,mysql-proxy0.8版本出来的时候,标榜自己解决了哪些问题,但是根据我实际测试的情况,测试过程中还有重启的记录,

测试环境3台64位centos5.4虚拟机:

192.168.0.26 mysql-proxy

192.168.0.24 mysql-master

192.168.0.10 mysql-slave

 
  
# !/bin/sh

/ root / mysql - proxy - 0.8 . 0 - linux - glibc2. 3 - x86 - 64bit / bin / mysql - proxy \
-- daemon \
-- keepalive \
-- admin - address = : 4041 \
-- admin - username = root \
-- admin - password = 123456 \
-- admin - lua - script =/ root / mysql - proxy - 0.8 . 0 - linux - glibc2. 3 - x86 - 64bit / share / doc / mysql - proxy / admin - sql.lua \
-- log - level = debug \
-- log -file =/ var / log / mysql - proxy.log \
-- proxy - address = : 6666 \
-- proxy - backend - addresses = 192.168 . 0.24 : 3306 \
-- proxy - read - only - backend - addresses = 192.168 . 0.10 : 3306 \
-- proxy - pool - no - change - user = disabled \
-- proxy - lua - script =/ root / mysql - proxy - 0.8 . 0 - linux - glibc2. 3 - x86 - 64bit / share / doc / mysql - proxy / rw - splitting.lua 2 >& 1

启动debug模式,修改后的rw-splitting.lua,在终端我们会看到以下提示信息:

简单的通过命令行,测试一下,

 
  
mysql - h 192.168 . 0.26 - P6666 - u root - p' 123456 '

通过终端可以显示

代码
 
   
[root @ sunss - 26 ~] # sh mysql-proxy.sh
[root @ sunss - 26 ~] #
[connect_server] 192.168 . 0.26 : 46062
[
1 ].connected_clients = 0
[
1 ].pool.cur_idle = 0
[
1 ].pool.max_idle = 8
[
1 ].pool.min_idle = 4
[
1 ].type = 1
[
1 ].state = 0
[
1 ] idle - conns below min - idle
[read_query]
192.168 . 0.26 : 46062
current backend
= 0
client
default db =
client username
= root
query
= select @@ version_comment limit 1
sending to backend :
192.168 . 0.24 : 3306
is_slave :
false
server
default db:
server username : root
in_trans :
false
in_calc_found :
false
COM_QUERY :
true

[connect_server]
192.168 . 0.26 : 46064
[
1 ].connected_clients = 0
[
1 ].pool.cur_idle = 0
[
1 ].pool.max_idle = 8
[
1 ].pool.min_idle = 4
[
1 ].type = 1
[
1 ].state = 1
[
1 ] idle - conns below min - idle
[read_query]
192.168 . 0.26 : 46064
current backend
= 0
client
default db =
client username
= root
query
= select @@ version_comment limit 1
sending to backend :
192.168 . 0.24 : 3306
is_slave :
false
server
default db:
server username : root
in_trans :
false
in_calc_found :
false
COM_QUERY :
true

出现的问题是:

1.在命令端,输入命令后无响应,查看日志,显示:

代码
 
   
2010 - 10 - 28 23 : 29 : 24 : (critical) network - mysqld.c: 510 : received packet - id 0 , but expected 3 ... out of sync.
2010 - 10 - 28 23 : 29 : 24 : (critical) network - mysqld.c. 1254 : network_mysqld_read(CON_STATE_READ_QUERY) returned an error

2.使用压力测试工具测试,跟踪表明mysql-proxy创建的子进程无法退出,导致进程挂起,别连接要么连接失败,要么连接没响应,如果连接越来越过,这些堆积的子进程也会越来越多,资源无法释放(kill,或者CTRL+C除外)

3.读写分离倒是可以做到的,但是目前mysql-proxy目前还不支持预编译语句(prepare statement)

       最后总结下吧,mysql-proxy还是不够稳定,大家遇到这种情况是怎么处理的,不妨说出来,呵呵

转载于:https://www.cnblogs.com/sunss/archive/2010/10/28/1863659.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值