- 集群代理技术
DB Proxy,数据库中间件,实现服务器读写分离(M-S-S M-M-S-S),负载均衡 (Galera Cluster),支持数据的分片自动路由与聚合。
产品包括:MySQL Proxy(MySQL官方)、Atlas(奇虎360)、DBProxy(美团点评)、Amoeba(早期阿里)、cober (阿里)、MyCat (阿里)等。
- Mycat部署
准备好域名解析(这里我不做域名解析。有需要可以自己做一下,修改本地hosts文件)
下载jdk图示
配置 Java环境
tar xvf jdk-8u91-linux-x64.tar.gz -C /usr/local/ls /usr/local/jdk1.8.0_91/ /usr/local/java
vim /etc/profile 添加设置JAVA变量 JAVA_HOME=/usr/local/java PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME PATH
source /etc/profile java -version 查看Java版本
配置Mycat
wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gztar xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/ls /usr/local/mycat/
vim /usr/local/mycat/conf/server.xml
注释多余用户
启动mycat管理员
配置mycat后端
先备份!!
vim /usr/local/mycat/conf/schema.xml
解释:
schema name:mycat维护的集群名称。
datanode:后方节点群的名称。
datahost:后方节点群的主机名称。
writehost:写主机
readhost:读主机
在本例中switchType值设置为1,表示自动切换,某些对主从数据一致要求较高的场景,建议使用2判断主从状态后再切换
切换的触发条件为主节点mysql服务崩溃或停止
slaveThreshold 主从的延迟在多少秒以内,则把读请求分发到这个从节点,否则不往这个节点分发,假设生产环境能容忍的主从延时为60秒,则设置此值为60,此例中设置值为100
属性的介绍
balance 类型
balance=“0”, 关闭读写分离功能。
所有读操作都发送到当前可用的writeHost上。
balance=“1”,开启读写分离
所有读操作都随机的发送到readHost。
writeType 属性
备份型
writeType=“0”, 所有写操作发送到配置的第一个 writeHost,
第一个挂了切到还生存的第二个writeHost,
重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties .
负载型
writeType=“1”,所有写操作都随机的发送到配置的 writeHost。
switchType 模式
switchType指的是切换的模式:
- switchType=’-1’ 负1表示不自动切换
- switchType=‘1’ 默认值,表示根据延时自动切换
- switchType=‘2’ 根据MySQL主从同步的状态决定是否切换,心跳语句为 show slave status
配置mysql群
M-M-S-S 准备Mycat连接的用户及权限
grant all on . to ‘mycatproxy’@’ 192.168.231.131’ identified by ‘XieDongwy@163’; 192.168.0.118是mycat服务器的IP
启动Mycat
在mycat服务器上
/usr/local/mycat/bin/mycat startnetstat -anpt | grep java 监测端口是否启动ps aux | grep mycat 检测进程是否启动 yum install -y mariadb 安装客户端 mysql -h192.168.231.129 -uroot -p123456 -P8066 show databases;
create database tianyun; 在mysql-master1上创库创表 create table tianyun.t1 (id int);