快乐学习
前程无忧、中华英才非你莫属!

Day9-MySQL架构实战(MHA)–读写分离篇

一、前言

因它高度扩展灵活,基于sql解析、达到负载均衡的实现,这里初步选用MaxScale框架来实现读写分离。

MaxScale 是 Mysql有血缘关系的近亲:MariaDB的一个中间件。一直没弄明白,MariaDB跟Mysql是什么关系,猜想,是不是因为Oracle 收购Mysql闹得,mb叫你收购我,单独成立公司,脱离你的控制~

使用 MaxScale,通过分片没有对可扩展性的技术限制,我们能够快速部署,而无需修改我们的应用程序。MariaDB是云数据库解决方案中最好的城市,这就是为什么我们选择MaxScale。 来源:LeadDesk首席执行官Olli Nokso-Koivisto

二、MaxScale 是干什么的?

配置好了MySQL的主从复制结构后,我们希望实现读写分离,把读操作分散到从服务器中,并且对多个从服务器能实现负载均衡。

读写分离和负载均衡是MySQL集群的基础需求,MaxScale 就可以帮着我们方便的实现这些功能。

上述来源:http://www.yunweipai.com/archives/9148.html

http://www.codesec.net/view/450195.html(深度好文)

二、MaxScale 安装配置

MaxScale安装

我们安装在MHA的管理机器上。

# rpm -ivh maxscale-1.2.1-1.rhel6.x86_64.rpm

卸载

# rpm -e –allmatches maxscale-1.2.1-1.x86_64

创建加密密钥

# maxkeys /var/lib/maxscale/

密钥文件.secrets存放在/var/lib/maxscale/目录下

创建加密密码

# maxpasswd /var/lib/maxscale/ zhangtongle123

BEBC2F21E15F9103E24C55FD1F335647

<span style="color: rgb(61, 70, 77);"–<——————————————————–

修改配置文件

# cat /etc/maxscale.cnf

maxscale.cnf.template  (etc目录下文件名是这个修改一下)

[maxscale]
threads=1
## 如果你的CPU是24核的,线程设置为12核即可

[MySQL Monitor]
type=monitor
module=mysqlmon
servers=server1,server2,server3
user=root
# MaxScale监控账号
passwd=BEBC2F21E15F9103E24C55FD1F335647


monitor_interval=10000
# 默认每隔10秒监控检查

detect_stale_master=1
# 当所有的slave都不可用,select查询请求会转发给master,默认为关闭,设置为1开启。

detect_replication_lag=1
# 开启同步复制延迟检查,默认为关闭,设置为1开启。

[RW Split Router]
type=service
router=readwritesplit
servers=server1,server2,server3
user=root
# 应用读写分离账号
passwd=BEBC2F21E15F9103E24C55FD1F335647

max_slave_replication_lag=5
# 定义超过延迟5秒,把请求转发给其他slave

max_slave_connections=100%
# 所有的slave提供select查询服务

#weightby=serv_weight
# 定义权重

use_sql_variables_in=master
# 如果你的SQL语句有变量,设置参数为master,将会路由到master
# 例:SELECT (@myvar := 5);

enable_root_user=1
# 默认禁止root超级权限用户访问,设置为1开启。

[CLI]
type=service
router=cli

[RW Split Listener]
type=listener
service=RW Split Router
protocol=MySQLClient
port=4006
# 读写分离端口,应用连接这个端口

[CLI Listener]
type=listener
service=CLI
protocol=maxscaled
port=6603
# MaxScale后台管理端口

[server1]
type=server
address=192.168.1.60
port=3306
protocol=MySQLBackend
#serv_weight=1
# 权重自定义

[server2]
type=server
address=192.168.1.61
port=3306
protocol=MySQLBackend
#serv_weight=10
# 权重自定义

[server3]
type=server
address=192.168.1.62
port=3306
protocol=MySQLBackend
#serv_weight=10
# 权重自定义

<span style="color: rgb(61, 70, 77);"–<——————————————————–

启动

/etc/init.d/maxscale start

然后开下启动日志,主要看error:var/log/maxscale/

errorlog 可能报生成的密钥文件没有权限读取操作,

[root@MHA maxscale]# ll -al  

[root@MHA maxscale]# chown maxscale.maxscale .secrets  赋权

停止

/etc/init.d/maxscale stop

重启

/etc/init.d/maxscale restart

打赏

未经允许不得转载:同乐学堂 » Day9-MySQL架构实战(MHA)–读写分离篇

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

特别的技术,给特别的你!

联系QQ:1071235258QQ群:226134712
error: Sorry,暂时内容不可复制!