MySQL:4.OneProxy实现读写分离简单实例


title: MySQL:4.OneProxy实现读写分离简单实例
categories: 数据库
tags:
- MySQL
timezone: Asia/Shanghai
date: 2019-03-10

环境

[root@centos181002 ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)

[root@centos181002 ~]# mysql -V
mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

oneproxy v6.2.0

第一步:下载并设置

1.下载并解压
wget http://www.onexsoft.com/software/oneproxy-rhel7-linux64-v6.2.0-ga.tar.gz
tar -vxzf oneproxy-rhel7-linux64-v6.2.0-ga.tar.gz
cd oneproxy
2.修改demo.sh
## 修改以下行为自己的实际路径
cp demo.sh demo.sh.bak
vim demo.sh
export ONEPROXY_HOME=/root/oneproxy
3.修改oneproxy.service
## 修改以下行为自己的实际路径
cp oneproxy.service oneproxy.service.bak
vi oneproxy.service

ONEPROXY_HOME=/home/oneproxy
4.修改proxy.conf
cp conf/proxy.conf conf/proxy.conf.bak
vim conf/proxy.conf

[oneproxy]
# 开启进程守护,当oneproxy进程挂掉后重启oneproxy
keepalive = 1

# 指定oneproxy的线程数,默认为8,建议为CPU的processor数量
event-threads = 4

# 指定日志文件的路径
log-file = log/oneproxy.log
pid-file = log/oneproxy.pid
lck-file = log/oneproxy.lck

# 针对企业版的注册码
proxy-license              = A2FF461456A67F28,D2F6A5AD70C9042D

# 指定后端数据库的版本号
mysql-version = 5.7.22

# 设定oneproxy提供服务的监听端口
# 用法:--proxy-address=<host:port>
proxy-address = :3307

proxy-forward-clientip = 1

# 开启是否事务调试功能,帮助架构师、DBA分析在业务运行时的各个表之间所关联的query和trx的关系
proxy-trans-debug = 1

proxy-httpserver           = 0.0.0.0:8080

proxy-auto-readonly        = 0

# 设定MySQL服务器的地址、端口号及所属集群
# 示例:--proxy-master-addresses=<host:port@servergroup>
proxy-master-addresses.1   = 11.11.11.61:3306@default
proxy-slave-addresses.2    = 11.11.11.62:3306@default
# proxy-slave-addresses.3  = ...

# 设定在一个group中,数据库的读写分离策略
proxy-group-policy         = default:read_slave
# 设定在当前group中访问dbname的用户名和密码,
# 用法:proxy-user-list=<user:passwd@dbname>
proxy-user-list            = default:root/7B3637566E106A0095721BAF48A66DF89BE192D7@test

## 7B3637566E106A0095721BAF48A66DF89BE192D7
## 这里的密码为使用``oneproxy/bin/mysqlpwd 数据库密码``加密过的字符串
5.启动
./oneproxy.service start

打开管理页面:http://11.11.11.61:8080/
admin
OneProxy
6.测试读写分离策略是否正确
1.直接连接从库的3306,然后写入数据
2.因为是主从复制架构,所以从库写入的数据不会同步到主库
3.这个时候通过OneProxy的3307端口连接数据库并查询数据
4.这个时候应该是可以查询到从库写入的数据,因为读取从从库

附录:关于数据库读写策略

支持一主多从场景的策略

master_only:读写都在master
read_failover:读写都在master,当master挂掉的时候读切到slaves
read_slave:写在master,读在所有slaves
read_balance:写在master,读从master以及slaves走
big_slave:写以及简单查询走master,复杂查询走slaves
big_balance:写及简单查询走master,复杂查询走master及slaves

数据分片场景的策略

write_shard:多组master的shard环境中,读写在任意master
read_shard:一组多从的shard环境中,写在master,读走其他节点
Percona XtraDB Cluster/MariaDB Galera Cluster环境
write_balance
write_other
write_failover

双主环境

read_other

附录:

官网:http://www.onexsoft.com/zh/download

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值