在Ubuntu12.04中进行cryptdb负载均衡配置

1.cryptdb负载均衡分析

传统的cryptdb中mysql-proxy只连接一个mysql客户端和mysql-server,但随着cryptdb的工业化,一个mysql客户端和mysql-server显然是无法满足现实生产的需求,上一篇博客中介绍了cryptdb的多机部署,接下来我将介绍cryptdb负载均衡的配置。
网上可实现负载均衡的工具有很多,如haproxy,mysql-proxy,为了避免麻烦,本文利用cryptdb本身已有的mysql-proxy来实现cryptdb的负载均衡,下面开始部署。

2.环境准备

Ubuntu-master:cryptdb安装的虚拟机
Ubuntu1:mysql-server安装的虚拟机
Ubuntu2:mysql-server安装的虚拟机

3.主主复制

在进行cryptdb负载均衡配置时,为了保证每个后端数据库都拥有cryptdb的所有数据,需要对后端数据库进行集群搭建,这里我们采用主主复制的模式来搭建集群。

3.1主主复制的理解

主主复制的步骤:
1)在slave节点授权账号
2) 在master节点进行slave配置,将原来的slave当做master进行连接
主主复制可以看作是在slave节点和master节点分别进行了一次主从复制。
在这里插入图片描述

3.2主主复制的过程

Ubuntu1:192.168.8.82
Ubuntu2:192.168.8.84
1) Ubuntu1配置
修改Ubuntu1中mysql的配置文件my.cnf

cd /etc/mysql
sudo vim my.cnf

添加以下内容

[mysqld]
server-id=11
log-bin=mysql-bin-11
binlog-format=row
relay-log=mysql-relay-11

保存后,重启mysql服务
2)Ubuntu2配置
修改Ubuntu2中mysql的配置文件my.cnf

cd /etc/mysql
sudo vim my.cnf

添加以下内容

[mysqld]
server-id=12
log-bin=mysql-bin-12
binlog-format=row
relay-log=mysql-relay-12

保存后,重启mysql服务
3)连接
在Ubuntu1中开启mysql客户端,创建用户

grant replication slave,replication client on *.* to 'root'@'%' identified by 'letmein';

查看二进制文件名和插入位置

show  master stauts \G

在这里插入图片描述
在Ubuntu2中开启mysql客户端,并执行

mysql>change master to 
    ->master_host='192.168.8.82',
    ->master_port=3306,
    ->master_user='root',
  	->master_password='letmein',
  	->master_log_file='mysql-bin-11.000012',
  	->master_log_pos=5375;

接下来同样在Ubuntu2中创建用户

grant replication slave,replication client on *.* to 'root'@'%' identified by 'letmein';

查看二进制文件名和插入位置

show  master stauts \G

在这里插入图片描述
在Ubuntu1中的mysql客户端执行

mysql>change master to 
    ->master_host='192.168.8.84',
    ->master_port=3306,
    ->master_user='root',
  	->master_password='letmein',
  	->master_log_file='mysql-bin-12.000001',
  	->master_log_pos=437;
  1. 在Ubuntu1中开启主主复制
start slave

查看slave状态

show slave status \G

在这里插入图片描述
5)测试
在Ubuntu1中创建数据库test_1
在这里插入图片描述
在Ubuntu2中查询
在这里插入图片描述
在Ubuntu2中删除数据库test_1
在这里插入图片描述
在Ubuntu1中查询
在这里插入图片描述
至此,后端数据库主主复制完成。

4.cryptdb负载均衡配置

在Ubuntu-master中开启mysql-proxy,执行

cd ~/cryptdb/bins/proxy-bin/bin
sudo su
./mysql-proxy  \
   --plugins=proxy --event-threads=4             \
   --max-open-files=1024                         \
   --proxy-lua-script=$EDBDIR/mysqlproxy/wrapper.lua \
   --proxy-address=192.168.8.81:3307                \
   --proxy-backend-addresses=192.168.8.82:3306      \
   --proxy-backend-addresses=192.168.8.84:3306

另外开启一终端连接到mysql-proxy

mysql -u root -pletmein -h 192.168.8.81 -P 3307

在cryptdb中创建数据库test
在这里插入图片描述
在Ubuntu1中查看
在这里插入图片描述
在Ubuntu2中查看
在这里插入图片描述
ubuntu1和Ubuntu2都是一样的,说明主主复制的两个集群,使用mysql-proxy管理成功!

总结

在这个负载均衡当中,其实就是使用mysql-proxy均衡两个MySQL服务器的连接数。这里不管这个连接里面的连接处理的数据量有多大,处理时间有多长。

比如主机A有5个连接,处理时间只需要10分钟。二主机B有2个连接,处理时间需要1个小时。当有第8个连接时,更有可能获取的是主机B的连接。

mysql_proxy会把连接mysql服务器的tcp/IP连接缓存进连接池,以提高性能. 在缓存池里, 缓存的连接大致是平均分配在每台mysql服务器上. 但具体的每一个连接,始终连某台服务器.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jolze

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值