Mysql的读写分离中间件该怎么写?听我来说。

网上有很多读写分离的中间件,像proxy,mycat等等,由于本人比较懒,懒得去读各种开源的东西,还是想造轮子来得快。

1、了解mysql通信协议,其中有分4.1之前和4.1版本的,由于4.1之前几乎没有人去使用了,所以我就直接按4.1的版本来实现。

2、找一个解析sql的库,从而得到sql的解析树,从而得知该sql具体是哪类操作,如select、insert、update、delete等等。

3、需要支持监听mysqlclient的连接和去联接mysqlserver服,类似于代理服务器,这里需要连接两个mysqlserver,一个是主库(写)、一个是从库(读)。如下面的配置

监听13306端口,协议为mysql4.1协议,负责监听mysqlclient的连接请求,如下配置:

Mysql的读写分离中间件该怎么写?听我来说。

解析请求的sql,如果是select的话,就跑从库(slave)

Mysql的读写分离中间件该怎么写?听我来说。

到这里就完成了,在这里需要说明一点的是,每一个mysqlclient连接到xdbrouter,xdbrouter都需要给这个mysqlclient连接创建两个连mysqlserver的连接(一主一库),因为mysql对于请求的sql是序号问题,没有办法将多个mysqlclient连接只共用一库一从的连接,这样做保证了数据的安全。代码已经上传到百云了,欢迎大家与我交流。
链接:https://pan.baidu.com/s/1aCsq7mKaWpbAuFsjPLgz7Q?pwd=xx0j
提取码:xx0j

Original: https://www.cnblogs.com/hellohuang/p/16602312.html
Author: HolleHuang
Title: Mysql的读写分离中间件该怎么写?听我来说。

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/504982/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球