Golang 实现的 mysql-proxy
Golang1.1昨天发布,性能提升不少。让我想起去年写的mysql-proxy,于是拿出来又改了一下调用最为频繁的一个函数,发现性能已经非常理想。这里放出来给有兴趣的朋友试用。
目前支持的功能是读写分离(非事务,如果用事务的话不会分发到slave上)和slave的负载均衡,未做失效检查。另外prepare可能会有问题。
如果有什么需求可以后续添加,golang改起来非常方便,当初这个proxy我也就1个礼拜完成的。
下载地址:http://www.mysqlab.net/products/mysql-proxy/lbproxy64.tar.gz (linux 64位)
(有需要win版本的可以密我)
配置:
1. 需要配置用于连接proxy的用户名和密码(sha1(plain password))
2. 需要配置连接后端master和slave的用户和密码(sha1(plain password))
3. slaves需要按照proxy.ini 格式写,因为解析ini文件的目前还没有容错
(本来是打算配置用web界面来做的,被其他事情给耽搁了)
启动:
目前启动方式很山寨
cd /path/to/proxy && ./proxy
(这个容易改,我已经有现成的python manager,套用过来就行)
大家有什么反馈可以q我或者这里留言(第一次需要审核,防止垃圾广告。)
Related posts:
据说在64位下比较好用一些,不过现在大部分好像用32为的比较多
@翻译公司
既然用到主从分离了,我相信应该用的是64位系统,如果是32位的话,升级64位 避免主从架构更合理。
能否把源代码分享一下
需要像原先mysql-proxy需要lua脚本吗?
考不考虑放到github上让更多人来用呢?
@刀尖红叶
不需要lua脚本(这也是性能会比官方的proxy好的原因),直接配置ini就可以了,非常简单。
@noah_zh
如果有什么需求可以提出来,我来实现。
放到github大家一起搞吧。
golang版支持多读多写,多网卡吗?如果是golang实现,开源可能会有更多参与者来贡献啊
@maxid
只是个proxy,mysql本身具备的能力,它都具备。
有没有新版本啊?