Mysql读写分离方案之Mycat2
官网地址:http://www.mycat.org.cn/场景
10.4.7.100 mysql-master
10.4.7.101 mysql-slave
10.4.7.102 mycatMysql主从部署
略Mycat部署
下载相关软件包
http://dl.mycat.org.cn/2.0/1.21-release/mycat2-1.21-release-jar-with-dependencies.jar
http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.21.zip
安装jdk
已有的略过即可
解压软件包cd /data/soft unzip mycat2-install-template-1.21.zip mv mycat /data/ cp mycat2-1.21-release-jar-with-dependencies.jar /data/mycat/lib/
修改自带数据源cd /data/mycat/conf/datasources vim prototypeDs.datasource.json
配置文件内容如下:{ "dbType":"mysql", "idleTimeout":60000, "initSqls":[], "initSqlsGetConnection":true, "instanceType":"READ_WRITE", "maxCon":1000, "maxConnectTimeout":3000, "maxRetryCount":5, "minCon":1, "name":"prototypeDs", "password":"1qaz@wsx?Z", "type":"JDBC", "url":"jdbc:mysql://10.4.7.100:3306/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8", "user":"root", "weight":0 }
修改server配置
主要修改内容为添加"serverVersion":"5.7.40-mycat-2.0",根据自己的服务器版本进行修改{ "loadBalance":{ "defaultLoadBalance":"BalanceRandom", "loadBalances":[] }, "mode":"local", "properties":{}, "server":{ "bufferPool":{ }, "idleTimer":{ "initialDelay":3, "period":60000, "timeUnit":"SECONDS" }, "ip":"0.0.0.0", "mycatId":1, "port":8066, "serverVersion":"5.7.40-mycat-2.0", "reactorNumber":8, "tempDirectory":null, "timeWorkerPool":{ "corePoolSize":0, "keepAliveTime":1, "maxPendingLimit":65535, "maxPoolSize":2, "taskTimeout":5, "timeUnit":"MINUTES" }, "workerPool":{ "corePoolSize":1, "keepAliveTime":1, "maxPendingLimit":65535, "maxPoolSize":1024, "taskTimeout":5, "timeUnit":"MINUTES" } } }
配置mycat用户{ "dialect":"mysql", "ip":null, "password":"mycat@123", "transactionType":"proxy", "username":"root" }
启动mycatcd /data/mycat/bin/ chmod +x ./* ./mycat start
测试连接
这个时候我们是看不到我们配置的数据库
创建逻辑数据库
创建数据源cd /data/mycat/conf/datasources cp prototypeDs.datasource.json m7-100-a1.datasource.json cp prototypeDs.datasource.json s7-101-a1.datasource.json
配置说明
配置文件名称:
m7-100-a1.datasource.json:master 10.4.7.100 a1库
s7-101-a1.datasource.json:slave 10.4.7.101 a1库
根据自己的需求进行配置,名称格式为:数据源名称.datasource.jsonname:数据源名称,要全局唯一,后面配置集群时会用到这个名称url:数据库连接字符串,根据自己的环境配置即可maxConnectTimeout:单位millis,配置中的定时器主要作用是定时检查闲置连接initSqlsGetConnection:true|false,默认:false,对于jdbc每次获取连接是否都执行initSqlstype:数据源类型,没有必要不要使用NATIVEJDBC,默认,只使用JDBC驱动连接NATIVE_JDBC,该数据源同一个配置同时可以使用NATIVE,JDBCNATIVE,只使用NATIVE协议(即Mycat自研的连接MySQL的协议)queryTimeout:jdbc查询超时时间 默认不超时(1.20,以及早期1.21默认30mills)instanceType:配置实例只读还是读写,读节点可以设置为READ,可选参数:READ_WRITE、READ、WRITE,在集群中,是READ_WRITE的类型,被设置到replicas,对该集群是READ的,但是它也被设置到masters则为READ_WRITE,这个属性要配合集群的负载均衡使用 weight:负载均衡特定用的权重
数据源配置文件内容m7-100-a1.datasource.json{ "dbType":"mysql", "idleTimeout":60000, "initSqls":[], "initSqlsGetConnection":true, "instanceType":"READ_WRITE", "maxCon":1000, "maxConnectTimeout":3000, "maxRetryCount":5, "minCon":1, "name":"m7-100-a1", "password":"1qaz@wsx?Z", "type":"JDBC", "url":"jdbc:mysql://10.4.7.100:3306/test_sync_a1?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8", "user":"root", "weight":0 }s7-101-a1.datasource.json{ "dbType":"mysql", "idleTimeout":60000, "initSqls":[], "initSqlsGetConnection":true, "instanceType":"READ", "maxCon":1000, "maxConnectTimeout":3000, "maxRetryCount":5, "minCon":1, "name":"s7-101-a1", "password":"1qaz@wsx?Z", "type":"JDBC", "url":"jdbc:mysql://10.4.7.101:3306/test_sync_a1?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8", "user":"root", "weight":0 }
配置schemas
配置文件位置:/data/mycat/conf/schemas
修改配置文件test_sync_a1.schema.json
配置文件完整内容如下:{ "customTables":{}, "globalTables":{}, "normalProcedures":{}, "normalTables":{}, "schemaName":"test_sync_a1", "targetName":"test_sync_a1_cluster", "shardingTables":{}, "views":{} }
targetName:目标集群名称,要和下面配置的cluster集群名称一致
配置cluster
配置说明
配置文件目录:/data/mycat/conf/clusters
cluster配置文件格式为:{集群名称}.cluster.jsonclusterType:集群类型
配置选项:SINGLE_NODE:单一节点MASTER_SLAVE:普通主从GARELA_CLUSTER:garela cluster/PXC集群MHA:1.21-2022年1月完善MGR:1.21-2022年1月完善,MIC集群可以使用此配置 readBalanceType :查询负载均衡策略
配置选项:BALANCE_ALL(默认值):获取集群中所有数据源BALANCE_ALL_READ:获取集群中允许读的数据源BALANCE_READ_WRITE:获取集群中允许读写的数据源,但允许读的数据源优先BALANCE_NONE:获取集群中允许写数据源,即主节点中选择switchType:切换类型NOT_SWITCH:不进行主从切换SWITCH:进行主从切换
集群配置文件内容
新建配置文件:test_sync_a1_cluster.cluster.json{ "clusterType":"MASTER_SLAVE", "heartbeat":{ "heartbeatTimeout":1000, "maxRetry":3, "minSwitchTimeInterval":300, "slaveThreshold":0 }, "masters":[ "m7-100-a1" ], "replicas":[ "s7-101-a1" ], "maxCon":200, "name":"test_sync_a1_cluster", "readBalanceType":"BALANCE_ALL", "switchType":"SWITCH" }
重启mycat
/data/mycat/bin/mycat restart
连接测试
可以发现现在已经可以看到相关表
读写分离测试
略
断舍离随想录飞来的蓝蜻蜓不知道作者贺兰云飞主播芳华想念,是一条湿漉漉的河被阻断,在一片荒凉荒凉之外,会不会有绿度母笼着你的呼吸还有你温和的微笑?或者,荒凉之外,还是荒凉世界真热闹啊一棵树死了,
唐嫣的9张美照,每帧都是珍藏款1。哪怕相隔千山万水,哪怕相别千年万载,这份情不变,这份爱绵延。要你知道,你都占据着我的心田。2。愁绝行人天易暮,行向鹧鸪声里住。3。人生海海,浮云开外。4。今晚月亮的温柔还有星星
做一颗永不生锈的螺丝钉时代青年干部要以雷锋同志为榜样,做一颗合格的螺丝钉,永不生锈,永不褪色,永不变质,以坚定的信仰奋发的姿态廉洁的形象奔跑在青春赛道上。坚定信念,牢记使命。新时代赋予青年新使命,新使命
人生观一个坚守道德准则的人,也许会暂时寂寞而那些阿谀攀附权贵的人,却会遭到永远的孤独。心胸豁达宽广的人,他们所以宁可坚守道德准则,而忍受暂时的寂寞,也决不会趋炎附势,而遭受万古的凄凉。涉
我的一封道歉信我的一封道歉信这封信的收信人,已经永远也收不到信了,因为2022年9月18日2点40分的交通事故,他们已经永远的离开了我们。但我依然想认真诚实的写下这封信,告慰他们的同时,也希望能
外星人的传说,为什么在近年来逐步消失?有什么关于外星人的真实案件吗相信很多喜欢关注外星人资讯的朋友会发现在上个世纪乃至本世纪初年,关于外星人的传说比比皆是。甚至还一度存在飞碟探索这样的杂志。但是,外星人的传说,仿佛一夜
黑洞内部到底是什么样的?让我们一起来一次黑洞之旅黑洞,或许是宇宙中最诡异,也是最不可思议的天体。黑洞里面到底什么样?科学家并不知道,现有大自然法则对于黑洞来讲完全失效了,只能凭借现有理论尽量去推测想象。下面就跟我一起,来一趟紧张
毅力号探测器在火星上发现大量有机物据英国新科学家杂志网站近日报道,美国国家航空航天局(NASA)的毅力号探测器在火星上发现了大量有机分子被认为是生命组成部分的含碳分子,这些物质的发现或使火星干涸的河流三角洲地区成为
2014年神秘天体坠入太平洋,或是外星科技?已确定来自太阳系外哈佛的一位天文学博士阿维洛布在2022年宣布,8年前坠入太平洋的陨石很有可能是外星科技。话说咱们的地球几乎每年都会被各种太空的流浪天体撞击,为什么阿维洛布偏偏说8年前的那枚神秘天体
空间站为什么只飞400公里高,就不能再飞得高一点吗?无论是我国的天宫空间站,还是超期服役的国际空间站,它们距离地面的高度都只有400公里。不止是空间站,很多人造的飞行器,只要围绕地球转,那么轨道高度都有一定的限制。空间站对接理论上人
哈勃望远镜捕捉的新图像揭示了一次神秘的天文爆炸事件在一张来自NASAESA哈勃太空望远镜的惊人图片中,一颗明亮的年轻恒星被厚厚的气体和灰尘笼罩着。哈勃的宽视场相机3(WFC3)检查了一颗年轻的恒星,它位于9000多光年外的金牛座,