温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

proxy负载均衡及读写分离详解

发布时间:2020-04-17 16:32:58 来源:亿速云 阅读:511 作者:三月 栏目:MySQL数据库

下文给大家带来proxy负载均衡及读写分离详解,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用亿速云在行业内累计的经验来做一个解答。

如何在客户端应用的时候,路由语句.

一般用两种方法

1: 直接在PHPmysql类做判断,最简单,不用额外加软件

比如discuz论坛.

proxy负载均衡及读写分离详解


2:用集群中间件

比如官方的mysql_proxy

,还有国产的中间件  amoeba


proxy负载均衡及读写分离详解

原理:不管用了多少mysql,程序都是和proxy通信


实战: mysql 读写分离  ,mysql_proxy实现

 

下载安装mysql_proxy:

http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.tar.gz

 

解压后, 该目录包含已经编译好的二进制文件,将解压后的目录移动到/user/local/

proxy负载均衡及读写分离详解

查看帮助文档:

proxy负载均衡及读写分离详解

先要proxy连接各mysql,先做个负载均衡

proxy负载均衡及读写分离详解

在另一台机器上连接proxy(注意,端口是4040):

proxy负载均衡及读写分离详解

然后就可以操作数据库了,打开多个客户端,连接proxy 4040,分别insert数据:

proxy负载均衡及读写分离详解(注意:proxy的均衡不是语句方面的均衡,而是连接上的均衡。比如:连接若干个连接池,当前连的是哪个mysql就操作哪个。语句层面的均衡,容易带来数据不一致)

读写分离:

proxy负载均衡及读写分离详解

(-b 192.168.0.199:指定199云服务器mysql为写。-r 192.168.0.200:3306:指定200服务器mysql为读。-s /user/locl/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua:指定读写分析脚本)

注意,脚本中有个设置,它有个最小,最大连接,:

proxy负载均衡及读写分离详解

proxy负载均衡及读写分离详解








实战: mysql 读写分离  ,mysql_proxy实现

 

下载安装mysql_proxy:

http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.tar.gz

 

解压后, 该目录包含已经编译好的二进制文件 .

 

1: 利用mysql_proxy实现负载均衡

执行mysql_proxy

./mysql-proxy-path/bin/mysql-proxy \

--proxy-backend-addresses=192.168.1.199:3306 \

--proxy-backend-addresses=192.168.1.200:3306

 

 

2: 连接mysql_proxy,mysql客户就可以,因为proxymysql的前端代理

注意proxy的端口是4040

mysql -h proxyIP -P 4040 -u username -p password


在连接上之后,sql查询,却总是往某1mysql server来发送------负载均衡没体现出来?

: 不是没体现出来.

均衡不是体现在sql语句,一会请求mysqlA,一会请求mysqlB.

均衡是体现连接的均衡上.,

 

mysql_proxy会把连接mysql服务器的tcp/IP连接缓存进连接池,以提高性能.

在缓存池里, 缓存的连接大致是平均分配在每台mysql服务器上.

但具体的每一个连接,始终连某台服务器.

 

 

./bin/mysql-proxy  \

--proxy-backend-addresses=192.168.1.199:3306 \

--proxy-read-only-backend-addresses=192.168.1.200:3306 \

--proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua

 

简写:

./bin/mysql-proxy -b=192.168.0.199:3306 -r=192.168.0.200:3306 -s=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua  

看了以上关于proxy负载均衡及读写分离详解,如果大家还有什么地方需要了解的可以在亿速云行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,亿速云技术工程师在行业内拥有十几年的经验了。

 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI