栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mycat实现主从分离(docker)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mycat实现主从分离(docker)

主从数据库
https://blog.csdn.net/qq_50743124/article/details/124074378?spm=1001.2014.3001.5501

四、安装mycat 1、jdk环境
#查看安装的jdk版本 -如果有环境可以不用下载
java -version
#  执行以下命令查看可安装的jdk版本:
yum -y list java*
2、安装mycat
# 查询mycat镜像列表,选择星数高
docker  search mycat
# 拉取mycat镜像
docker pull longhronshens/mycat-docker
# 查看版本信息
docker image inspect longhronshens/mycat-docker:latest|grep -i version

五、mycat读写分离 1、为什么要读写分离

读写分离之后可以降低计算机的压力

2、读写分离的原理

读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,
这样能有效地减轻单台数据库的压力。
通过Mycat即可轻易实现上述功能,不仅可以支持MysoL,也可以支持oracle和sql Server。
MyCat控制后台数据库的读写分离和负载均衡由schema . xml文件datahost标签的balance属性控制。

3、启动mycat
docker run --name Mmycat -v /usr/local/mycat/schema.xml:/usr/local/mycat/conf/schema.xml -v /usr/local/mycat/rule.xml:/usr/local/mycat/conf/rule.xml -v /usr/local/mycat/server.xml:/usr/local/mycat/conf/server.xml --privileged=true -p 8066:8066 -p 9066:9066 -e MYSQL_ROOT_PASSWORD=mysql1234 -d longhronshens/mycat-docker

参数说明:

  • -v:容器文件挂载到本地文件;目的:本地修改文件容器内绑定的文件一起变
3.1、确认启动

4、mycat配置

前提

主库和从库要有schema.xml配的

4.1、server.xml



	
		0 
		1
		0  
		0  
 
		2
		false 
		0
 
		1
 
		64k
 
		1k
 
		0
		384m
 
		false
 
		false
			
		true
		
	
 
	
        mysql1234
        ITCAST
       
    

    
        mysql1234
        ITCAST
        true
    


4.2、schema.xml(重点关注)



    
    
        
select user()
重要参数说明:
  • balance:

    • 负载均衡类型,目前取值有4种:

    • balance="0”:不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。

    • balance=“1”︰全部的readHost 与 stand by writeHost(备用的writeHost)都参与select语句的负载均衡,简而言之,就是采用双主双从模式(1 -->s1 ,M2 -->S2,正常情况下,M2,51,S2 都参与 select 语句的负载均衡)。

    • balance=“2”:所有的读写操作都随机在writeHost , readHost上分发。

    • balance="3”:所有的读请求随机分发到writeHost对应的readHost上执行,writeHost不负担读压力 ;balance=3只在MyCat1.4 之后生效。

  • checkSQLschema
    当该值设置为true时,如果我们执行语句"select from test01.user ;"语句时,MyCat则会把schema字符去掉,可以避免后端数据库执行时报错;

4.3、rule.xml(不用改)



	
		
			id
			func1
		
	
	
		
			id
			jump-consistent-hash
		
	
 
	
		0
		2
		160
		
		
	
 
	
		2
	
	
		partition-hash-int.txt
	
	
		autopartition-long.txt
	
	
		
		4
	
 
	
		8
		128
	
	
		24
	
	
		yyyy-MM-dd
		2019-01-01
	
	
	
        partition-range-mod.txt
	
	
	
		4
	

5、验证准备 5.1、找到容器流水号

默认读者使用finalshell

docker inspect 容器名或者容器ID

5.2、进入容器内部文件系统

注意不是这个;是尾部没有init的

找到这个目录

/var/lib/docker/overlay2/41d76209d603e2a5fd37bf0d9804e004f39a4c3f694299e01ba55687ebebc51f/merged/usr/local/mycat/conf
5.3、修改mycat容器的log4j2.xml文件

把info修改debug才能出现日志

6、验证 6.1、新开一个窗口观察日志
docker exec -it Mmycat bash

cd /usr/local/mycat/logs

tail -f mycat.log
6.1、在mycat的数据库操作观察日志

show databases;

use ITCAST;

show tables;

select * from user;
验证结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881325.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号