MyCAT读写分离
2023-12-27 22:19:23
目录
MyCAT读写分离
Mycat 是一个开源的数据库系统,但是由于真正的数据库需要存储引擎,而 Mycat 并没有存 储引擎,所以并不是完全意义的数据库系统。 那么 Mycat 是什么?Mycat 是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服务。
MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用了 JDK7 中的一些特性,所以要求必须在 JDK7 以上的版本上运行。
配置双主双从
准备4个服务器且安装MySQL
?master1 ? -------主库1,master2 --------主库2 ? (master1与master2互为主从) ?slave1 -----------master1的从库,slave2 ------msater2的从库
主从配置参考上一篇博客
#注意所有服务器都做主机名解析(方便操作)
部署环境
准备一个服务器安装MySQL并做主机名解析
?hostnamectl set-hostname=mycat
-
下载jdk,mycat
?官网下载
-
解压文件
?[root@mycat ~]# tar -xf jdk-8u181-linux-x64.tar.gz ? -C /usr/local/
-
配置Java环境(mycat服务需要Java环境)
?vim /etc/profile ?export PATH=/usr/local/jdk/bin:$PATH ?source /etc/profile ? ? ? 重新加载环境变量 ?java -version ? ? ? ? ? ? 查看Java版本
-
部署MYCAT
?[root@mycat ~]# tar xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz -C /usr/local/
-
配置MYSCAT
认识配置文件
MyCAT 目前主要通过配置文件的方式来定义逻辑库和相关配置:
/usr/local/mycat/conf/server.xml 定义用户以及系统相关变量,如端口等。其中用户信息是前端应用程序连接 mycat 的用户信息。 server.xml为虚拟的数据。
/usr/local/mycat/conf/schema.xml 定义逻辑库,表、分片节点等内容,schema.xml为真实的数据。
-
配置server.xml文件
?vim /usr/local/mycat/conf/server.xml
-
配置schema.xml文件
?vim /usr/local/mycat/conf/schema.xml
-
启动mycat
?cd /usr/local/mycat/bin/ ?./mycat start ?./{ console | start | stop | restart | status | dump } ? 支持的参数 ?注意:若Mycat启动后自动关闭,则vim /usr/local/mycat/conf/wrapper.conf并添加 wrapper.startup.timeout=300 ?ss -nplt ? ? 查看端口
-
在真实的数据库上给用户授权
?mysql -p密码 ?mysql>grant all on *.* to 'root'@'%' identified by '123456'; ?mysql> flush privileges;
-
在MYCAT服务器上测试用户能否登录
?测试是否能正常登录上 主服务器 ?mysql -uroot -p'123456' -hmaster1 ?测试是否能正常登录上 主服务器 ?mysql -uroot -p'123456' -hslave1
-
通过客户端进行测试是否能登录到 mycat 上
?mysql -uroot -p'123456' -hmycat -P 8066
-
创建数据库db1(因为slave是启动的所以在master1创建则行)
?mysql>create database db1;
-
关闭master1,master2,slave1,slave2的slave线程
?mysql>stop slave
-
balance的类型
?balance 属性 ?负载均衡类型,目前的取值有 3 种: ?1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。 ?2. balance="1", 全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2 ? ? 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。 ?4. balance="2", 所有读操作都随机的在 writeHost、readhost 上分发。 ?5. balance="3", 所有读请求随机的分发到 writerHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。 ?? ?writeType 属性 ?负载均衡类型 ?1. writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准. ?2. writeType="1",所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐。
-
通过Mycat虚拟用户登录测试数据库的读写分离
?更改balance 属性进行测试 ?在(master1,master2,slave1,slave2)的bd1库里创建不同的表,首先使用mycat虚拟用户登录数据库,然后根据查到的表结果判断数据库的读写分离。
文章来源:https://blog.csdn.net/zbw0323/article/details/135255752
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!