Mycat 实现读写分离
Posted Bin云计算
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mycat 实现读写分离相关的知识,希望对你有一定的参考价值。
问题:
1.现有的网数据读写都在mysql 主库进行操作,有没有可能读写分别在主库和从库分开进行?
3.如果nginx 单点服务器宕机,如何保证业务的连续性?
MySQL 的读写分离:mycat
1.环境:
主库:192.168.10.10
从库:192.168.10.129
mycat:192.168.10.128
2..配置主从
(略,过程参照MySQL 主从搭建)
3.安装jdk
tar xf jdk /usr/local/jdk1.8.0_77
vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_77
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
4..配置安装mycat
tar xf Mycat-server.tar.gz -C /opt/
cd /opt/mycat
vi conf/schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"
dataNode="dn1">
</schema>
<dataNode name="dn1" dataHost="localhost1" database="test" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native"
switchType="slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="db1" url="192.168.10.10:3306" user="root"
password="000000">
<readHost host="hostS2" url="192.168.10.129:3306"
user="root" password="000000" />
</writeHost>
</dataHost>
</mycat:schema>
vi conf/server.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
<system>
<property name="useSqlStat">0</property> <!-- 1 为开启实时统计、0
为关闭-->
<property name="useGlobleTableCheck">0</property> <!-- 1 为开启
全加班一致性检测、0 为关闭-->
<property name="sequnceHandlerType">2</property>
<property name="processorBufferPoolType">0</property>
<property
name="handleDistributedTransactions">0</property>
<property name="useOffHeapForMerge">1</property>
<property name="memoryPageSize">1m</property>
<property name="spillsFileBufferSize">1k</property>
<property name="useStreamOutput">0</property>
<property
name="systemReserveMemorySize">384m</property>
<property name="useZKSwitch">true</property>
</system>
<user name="root">
<property name="password">123456</property>
<property name="schemas">TESTDB</property>
</user>
</mycat:server>
/opt/mycat/bin/mycat start
4.数据准备及验证:
(1)主库新建数据库并创建表:
create database db1;
use db1
create table db1 (id int null,name char(20) null);
(2)从库查询数据库及表
show databases;
use db1
show tables;
(3)mycat 服务器插入数据
登陆:mysql -h127.0.0.1 -P8066 -uroot -p123456
(4)查询数据库:
show databases;
(5)查询表:
use TESTDB;
show tables;
(6)查询表结构:
DESC db1;
(7)插入数据:
INSERT INTO db1 (id,name) values (1,"yunwei");
(8)验证读写分离:
mycat 服务器:mysql -h127.0.0.1 -P9066 -uroot -p123456 -e 'show@@datasource;'
(9)验证结果:
以上是关于Mycat 实现读写分离的主要内容,如果未能解决你的问题,请参考以下文章