环境是PXC的3节点,虽然PXC的3个节点都是可读写,避免主键的争用,还是做成了1写2读的读写分离,读写分离的中间件选用了mycat来做,因为mycat 可以很好地做 写节点切换。
PXC的集群已经搭建好了。3个节点
js-ypt-percona1-t 192.168.50.130
js-ypt-percona2-t 192.168.50.131
js-ypt-percona3-t 192.168.50.132
mycat 的机子IP为 192.168.50.10
mycat 选用的版本是Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz
下载安装包,并解压到 /usr/local/mycat
mycat 的读写分离配置,只用到2个配置文件,conf 里面的 schema.xml 和 server.xml。
schema.xml 配置
上面3行都不需要改变
下面的配置主要分3个配置项,schema , datanode,datahost
--name 逻辑数据库名,与server.xml中的schema对应
--sqlMaxLimit 限制返回行数,语句有带limit以语句的为准,否则以这个参数为准
--dataNode 读写分离没有这个参数就改成这个参数,对应下一个dataNode选项配置,可以随意命名
--name 对应上面的schema
--dataHost 可以随意命名
--database PXC中真实的库名
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
select user()
--name 对应dataNode 配置选项的 dataHost
-- maxCon 最大连接1000,minCon最小连接,balance=2 负载均衡是select 随机往写和读节点分布
--writeType =0 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个 writeHost
--switchType=1 自动切换writeHost , 上面的配置中 我定义了2个 writeHost
server.xml 配置
123456
percona
percona
-- 配置很简单 用户 admin,密码 123456,库是 percona
启动mycat
/usr/local/mycat/bin/startup_nowrap.sh ##启动mycat
有可能会碰到一个奇怪的问题。
vim startup_nowrap.sh
set ff 可能查看到的是 windows, 执行 set ff=unix 即可,然后重新运行脚本
用客户端 连接 mycat
192.168.50.10:8806 admin/123456
连接成功!
done!