赞
踩
首先得安装JDK
为了减轻数据库压力,我们部署了两个MySQL集群,实现了数据分片。
每个集群架构为一主一从,M1(3306)-> S1(3307);M2(3316)-> S2(3317)
关于部署MySQL集群,具体可以参考我的另一篇博客:https://blog.csdn.net/qq_41479635/article/details/131697076?spm=1001.2014.3001.5501
我用的是Mycat1.6
http://dl.mycat.org.cn/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
或者官网下载安装包:http://www.mycat.io/
# 创建目录,解压文件 mkdir mycat01 tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz mycat01/ # 修改配置文件 cd mycat01/conf vim 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="nonePasswordLogin">0</property> <property name="useHandshakeV10">1</property> <property name="useSqlStat">0</property> <property name="useGlobleTableCheck">0</property> <property name="sequnceHandlerType">2</property> <property name="subqueryRelationshipCheck">false</property> <property name="processorBufferPoolType">0</property> <property name="handleDistributedTransactions">0</property> <property name="useOffHeapForMerge">1</property> <property name="memoryPageSize">64k</property> <property name="spillsFileBufferSize">1k</property> <property name="useStreamOutput">0</property> <property name="systemReserveMemorySize">384m</property> <property name="useZKSwitch">false</property> </system> <!--这里是设置的ronin用户和虚拟逻辑库--> <user name="ronin" defaultAccount="true"> <property name="password">ronin</property> <property name="schemas">ronin</property> </user> </mycat:server>
# 修改配置文件 vim schema.xml # 删除里面内容,添加以下内容 <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <!--配置数据表,两个集群 dataNode:dn1,dn2--> <schema name="ronin" checkSQLschema="false" sqlMaxLimit="100"> <table name="tb_test" dataNode="dn1,dn2" rule="mod-long" /> </schema> <!--配置分片关系--> <dataNode name="dn1" dataHost="cluster1" database="ronin" /> <dataNode name="dn2" dataHost="cluster2" database="ronin" /> <!--配置连接信息,分片集群1--> <dataHost name="cluster1" maxCon="1000" minCon="10" balance="3" writeType="1" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!--主节点写,从节点读--> <writeHost host="W1" url="192.168.241.130:3306" user="root" password="root"> <readHost host="W1R1" url="192.168.241.130:3307" user="root" password="root" /> </writeHost> </dataHost> <!--分片集群2--> <dataHost name="cluster2" maxCon="1000" minCon="10" balance="3" writeType="1" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="W2" url="192.168.241.130:3316" user="root" password="root"> <readHost host="W2R1" url="192.168.241.130:3317" user="root" password="root" /> </writeHost> </dataHost> </mycat:schema>
balance属性说明: 负载均衡类型,目前的取值有3 种:
- balance=“0”, 不开启读写分离机制,所有读操作都发送到当前可用的writeHost 上。
- balance=“1”,全部的readHost 与stand by writeHost 参与select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1 与M2 互为主备),正常情况下,M2,S1,S2都参与select 语句的负 载均衡。
- balance=“2”,所有读操作都随机的在writeHost、readhost 上分发。
- balance=“3”,所有读请求随机的分发到wiriterHost 对应的readhost 执行,writerHost 不负担读压力, 注意balance=3 只在1.4 及其以后版本有,1.3 没有。
# 修改配置文件
vim schema.xml
# 修改内容
<function name="mod-long" class="io.mycat.route.function.PartitionByMod">
<property name="count">2</property>
</function>
单节点Mycat配置完成,启动
# 启动
cd ../bin
./startup_nowrap.sh
tail -f ../logs/mycat.log
cp mycat01 mycat02 -R
cd mycat02/conf
# 修改配置文件
vim wrapper.conf
#设置jmx端口
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=1985
# 修改配置文件
vim server.xml
#设置服务端口以及管理端口
<property name="serverPort">8067</property>
<property name="managerPort">9067</property>
启动第二个Mycat节点
# 启动
cd ../bin
./startup_nowrap.sh
tail -f ../logs/mycat.log
多节点的mycat搭建完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。