冰河,能讲讲Mycat如何实现MySQL的读写分离吗?,javamybatis面试题

source /etc/profile

配置Mycat


确认MySQL主从复制正常

在配置Mycat前,请确认MySQL的主从复制安装配置已完成并正常运行。MySQL主从数据的同步在MySQL中配置,Mycat不负责数据同步的问题。

补充:

  • MySQL主从复制配置中,如果涉及到函数或存储过程的同步复制,需要在/etc/my.cnf中的[mysqld]段中增加配置log_bin_trust_function_creators=true 或在客户端中设置 set global log_bin_trust_function_creators = 1;

  • 如果要做读写分离下的主从切换,那么从节点也有可能会变为写节点,因此从节点就不能设置为只读 read_only=1

  • Linux版本的MySQL,需要设置为MySQL大小写不敏感,否则可能会发生找不到表的问题。可在/etc/my.cnf的[mysqld]段中增加lower_case_table_names=1 。

配置schema.xml

schema.xml是Mycat最重要的配置文件之一,用于设置Mycat的逻辑库、表、数据节点、dataHost等内容,

[root@liuyazhuang133 conf]$ cd /usr/local/root/conf/

[root@liuyazhuang133 conf]$ vi schema.xml

文件内容如下所示。

<?xml version="1.0"?>

<mycat:schema xmlns:mycat=“http://org.opencloudb/”>

<dataHost name=“dtHost2” maxCon=“500” minCon=“20” balance=“1”

writeType=“0” dbType=“mysql” dbDriver=“native” switchType=“2” slaveThreshold=“100”>

show slave status

</mycat:schema>

Mycat1.4开始支持MySQL主从复制状态绑定的读写分离机制,让读更加安全可靠,配置如下:

Mycat心跳检查语句配置为 show slave status ,dataHost 上定义两个新属性:switchType=“2” 与 slaveThreshold=“100”,此时意味着开启MySQL主从复制状态绑定的读写分离与切换机制,MyCat心跳机制通过检测 show slave status 中的 “Seconds_Behind_Master”, “Slave_IO_Running”, “Slave_SQL_Running” 三个字段来确定当前主从同步的状态以及Seconds_Behind_Master主从复制时延,当Seconds_Behind_Master 大于slaveThreshold时,读写分离筛选器会过滤掉此Slave机器,防止读到很久之前的旧数据,而当主节点宕机后,切换逻辑会检查Slave上的Seconds_Behind_Master是否为0,为0时则表示主从同步,可以安全切换,否则不会切换。

配置 server.xml

server.xml 主要用于设置系统变量、管理用户、设置用户权限等。

[root@liuyazhuang133 conf]$ vim server.xml

文件内容如下所示。

<?xml version="1.0" encoding="UTF-8"?>

<mycat:server xmlns:mycat=“http://org.opencloudb/”>

druidparser

utf8mb4

lyz.123

lyz_schema1,lyz_schema2

lyz.123

lyz_schema1,lyz_schema2

true

</mycat:server>

防火墙中打开8066和9066端口

Mycat的默认数据端口为8066,mycat通过这个端口接收数据库客户端的访问请求。

管理端口为9066,用来接收Mycat监控命令、查询Mycat运行状况、重新加载配置文件等。

[root@liuyazhuang133 mycat]# vim /etc/sysconfig/iptables

增加:

MyCat

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8066 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 9066 -j ACCEPT

重启防火墙:

[root@liuyazhuang133 mycat]# service iptables restart

修改log日志级别为debug

修改log日志级别为debug,以便通过日志确认基于Mycat的MySQL数据库集群读写分离的数据操作状态(可以在正式上生产前改成info级别)

[root@liuyazhuang133 conf]$ vim /usr/local/mycat/conf/log4j.xml

在这里插入图片描述

启动Mycat


[root@liuyazhuang133 bin]$ cd /usr/local/root/bin/

(1) 控制台启动,这种启动方式在控制台关闭后,Nycat服务也将关闭,适合调试使用:

[root@liuyazhuang133 bin]$ ./mycat console

(2) 可以采用以下后台启动的方式:

[root@liuyazhuang133 bin]$ ./mycat start

Starting root-server…

Mycat连接测试


(1) 如果本地Windows安装有MySQL,可以使用已有的mysql客户端远程操作Mycat

在这里插入图片描述

在这里插入图片描述

(2) Nativecat连接Mycat

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

读写分离测试

(1) 监听Mycat日志

[root@liuyazhuang133 ~]$ cd /usr/local/mycat/logs/

[root@liuyazhuang133 logs]$ tail -f mycat.log

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

最后的话

无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!

部分截图:
在这里插入图片描述

642GPL-1711025209626)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-LNQXorJg-1711025209627)]

最后的话

无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!

部分截图:
[外链图片转存中…(img-68iuIcAN-1711025209627)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值