MyCat配置和使用

springboot整合mycat 该文件为全局自增主键配置对于table定义了autoIncrement=“true” primaryKey="id"的表,需要配置全局自增序号(注意全大写)。,类型为String,值格式为dataId-分表ID,dataId用于分组ID计算,为数据量提供扩展性;实现calculateRange范围分片DN计算方法(参数是burst值)在类中定义volume、step、mod三个变量,并提供set方法。实现calculate 等值分片DN计算方法(参数是burst值)Volume是每组分片的数据容量。 阅读详情

MyCat配置和使用

1、什么是MyCat
2、MyCat应用场景
3、使用MyCat路由实现读写分离
4、SpringBoot动态数据源切换原理
5.、SpringBoot项目实现读写分离

 

 

使用MyCat实现读写分离

什么是MyCat
MyCAT是一款由阿里Cobar演变而来的用于支持数据库,读写分离、分表分库的分布式中间件。MyCAT支持Oracle、MSSQL、MYSQL、PG、DB2关系型数据库,同时也支持MongoDB等非关系型数据库。
MyCAT原理MyCAT主要是通过对SQL的拦截,然后经过一定规则的分片解析、路由分析、读写分离分析、缓存分析等,然后将SQL发给后端真实的数据块,并将返回的结果做适当处理返回给客户端。
官方网站:http://www.mycat.io/

 

基于MyCat实现读写分离
读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,这样能有效地减轻单台数据库的压力。主数据库进行写操作后,数据及时同步到所读的数据库,尽可能保证读、写数据库的数据一致,比如MySQL的主从复制、Oracle的data guard、SQL Server的复制订阅等。 
画图演示

 

读: select

写: select/update/insert/crate/delete

 

  MyCat拦截客户端的所有JDBC,根据sql语句判断转发到不同的数据库执行

  

 

 MyCat安装:

Linux环境安装MyCat实现读写分离
1、上传安装Mycat-server-1.6.5-release-20180122220033-linux.tar
2、解压安装包tar –zxvf
3、配置schema.xml 和server.xml
4、客户端连接端口号: 8066

 

 MyCat需要虚拟出一个数据库,客户端连接的是一个虚拟的数据库。

 读写分离:第一方面肯定是要根据SQL语句  第二是根据连接账号

 主要配置:

    

 

 配置的是虚拟的和真实的对应关系

 schema.xml:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
    <!-- TESTDB1 是mycat的逻辑库名称,链接需要用的   mycat_testdb表示mycat虚拟的数据库 -->
    <schema name="mycat_testdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
        <!-- database 是MySQL数据库的库名   虚拟数据库与真实数据库对应 -dataHost表示真实的数据库 database表示与真实的进行对应 ->
    <dataNode name="dn1" dataHost="localhost1" database="test" />
    <!--
    dataNode节点中各属性说明:
    name:指定逻辑数据节点名称;
    dataHost:指定逻辑数据节点物理主机节点名称;
    database:指定物理主机节点上。如果一个节点上有多个库,可使用表达式db$0-99,     表示指定0-99这100个数据库;

    dataHost 节点中各属性说明:
        name:物理主机节点名称;
        maxCon:指定物理主机服务最大支持1000个连接;
        minCon:指定物理主机服务最小保持10个连接;
        writeType:指定写入类型;
            0,只在writeHost节点写入;
            1,在所有节点都写入。慎重开启,多节点写入顺序为默认写入根据配置顺序,第一个挂掉切换另一个;
        dbType:指定数据库类型;
        dbDriver:指定数据库驱动;
        balance:指定物理主机服务的负载模式。
            0,不开启读写分离机制;
            1,全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与 M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡;
            2,所有的readHost与writeHost都参与select语句的负载均衡,也就是说,当系统的写操作压力不大的情况下,所有主机都可以承担负载均衡;
    下面是读写分离的配置 如果是读走的url="192.168.91.9:3306"     如果是写走的的url="192.168.91.8:3306"     
-->
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <!-- 可以配置多个主从 下面是从数据库的配置信息 -->
        <writeHost host="hostM1" url="192.168.91.8:3306" user="root" password="root">
            <!-- 可以配置多个从库 下面是从数据库的信息 -->
            <readHost host="hostS2" url="192.168.91.9:3306" user="root" password="root" />
        </writeHost>
    </dataHost>
</mycat:schema>

 

 server.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!-- - - Licensed under the Apache License, Version 2.0 (the "License"); 
    - you may not use this file except in compliance with the License. - You 
    may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 
    - - Unless required by applicable law or agreed to in writing, software - 
    distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 
    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the 
    License for the specific language governing permissions and - limitations 
    under the License. -->
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
   

   <!-- 读写都可用的用户    mycat_testdb是虚拟数据库的名称  -->
    <user name="root" defaultAccount="true">
        <property name="password">123456</property>
        <property name="schemas">mycat_testdb</property>

        <!-- 表级 DML 权限设置 -->
        <!--        
        <privileges check="false">
            <schema name="TESTDB" dml="0110" >
                <table name="tb01" dml="0000"></table>
                <table name="tb02" dml="1111"></table>
            </schema>
        </privileges>       
         -->
    </user>

    <!-- 只读用户 -->
    <user name="user">
        <property name="password">user</property>
        <property name="schemas">mycat_testdb</property>
        <property name="readOnly">true</property>
    </user>

</mycat:server>

 

启动后看日志:successful说明成功

 

 

 通过工具去连接:

 

 连接成功看到配置文件中 虚拟化的数据库:

最终对应的是test数据库: 里面的表都可以看到

主修改后 从也会看到

 

Windows配置mycat 安装mycat的前提是你本地已经安装好了mysql。下载mycat地址: https://github.com/MyCATApache/Mycat-download/tree/master/1.4-RELEASE 选择win版本。解压后配置环境变量: 如图:MYCAT_HOME配置: PATH配置: 修改配置文件(mycat–>conf): wrapper.conf: 这里改成你本 阅读详情

相关推荐

springboot-mycat:springboot 集成mycat

使用spring-data-jpa连接mycat实例 文章地址:

MyCat-入门、配置

MyCat

m0_56358507的博客 1523

mycat+sqlServer简单demo

window环境mycat+sqlserver简单实现demo,建立数据库和设置ip地址和用户、密码则可使用,博客地址https://blog.youkuaiyun.com/a13631477685/article/details/80415774

MyCat入门到配置使用

Mycat是数据库中间件,所谓中间件数据库中间件是连接Java应用程序和数据库中间的软件。一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL的加强版数据库一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品一个新颖的数据库中间件产品Mycat作用为:能满足数据库数据大量存储;提高了查询性能。

优快云博客技术,java高级工程师,业务层架构师,高级管理认证,毕业设计可以联系我 1028

LLaMA-Factory全面指南:从训练到部署

LLaMA-Factory项目是一个专注于大模型训练、微调、推理和部署的开源平台。其主要目标是提供一个全面且高效的解决方案,帮助研究人员和开发者快速实现大模型的定制化需求。简化大模型训练流程:通过提供一系列预设的训练脚本和参数配置,降低用户在训练大模型时的技术门槛,使得即使是初学者也能轻松上手。增强模型微调能力:支持多种微调方法,如LoRA、QLoRA等,使用户能够根据特定任务需求对模型进行精细调整,从而提升模型性能。优化推理和部署体验。

全世界的博客 1万+

Zemax新手别慌!一文搞懂几何像差:从球差、慧差到色差的实战识别与优化

本文为Zemax新手提供几何像差实战指南,详细解析球差、彗差和色差的识别与优化方法。通过软件操作关键节点和实际项目决策逻辑,帮助光学设计师快速掌握像差诊断与优化技巧,提升光学设计效率。

weixin_42524708的博客 258

手把手带你用数据库中间件Mycat+SpringBoot完成分库分表

一、背景 随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的磁盘、IO、系统开销,甚至性能上的瓶颈,而一台服务的资源终究是有限的,因此需要对数据库和表进行拆分,从而更好的提供数据服务。 当用户表达到千万级别,在做很多操作的时候都会很吃力,所以当数据增长到1000万以上就需要分库分表来缓解单库(表)的压力。   二、什么是分库分表[1] 简单...

勇往直前的专栏 3881

爬取中国空气质量在线监测分析平台

1.准备,爬取的链接地址 https://www.aqistudy.cn/html/city_detail.html 2.分析 a.当打开链接后,数据已经设置好了,说明里面大部分都是js通过ajax调用的, b.打开f12分析代码 通过捕获到的数据包,发现当前请求为ajax,携带着一个为d的参数且该请求携带的数据是加密过的,并且响应也是加密过的 c.这时候的问题就是...

Mr Right 6371

springboot整合mycat实现读写分离

springboot整合mycat实现读写分离

好好学习天天向上 3229

Arcgis加载在线地图(内涵各种在线地图)

这三个在线地图是最常用的在线地图,其他几个类型的在线地图请自行查看。,加载出在线图层说明连接成功,点击。1、首先打开Arcgis,找到。

爱吃雪糕的小布丁的博客 1万+

项目模块提取生成jar包上传到nexus供其他项目使用

项目场景: 微服务项目当中的某一个模块其他项目进行复用,资源管理搭建的有私服 nexus。 问题描述: 如果把功能用到其他项目,代码重复量太大,不想些重复的代码。 原因分析: 如果把这个模块单独提取出来进行复用,至于操作数据库的功能,使用远程调用进行数据库操作,这样就能解决相同模块重复编写的工作。量。 解决方案: 首先对模块代码进行封装提取,把一些用到的参数提取出来,以传参的形式来对参数进行传递。这个需要根据具体的情况进行代码提取,提取之后把这个模块的代码进行打包,打包可以借助开发工具进行打包(记得使用 d

lierjun 的专栏 451

Linux下Mycat安装配置和使用

mysql安装 下载mysql【百度云】 tar -zxvf mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz 解压 把mysql文件夹移动到 /usr/local/ 下mv mysql-5.6.32-linux-glibc2.5-x86_64 /usr/local/mysql 创建mysql用户和组groupadd mysql adduser -r -g mysq

jaysonhu的博客 2万+

µC/OS-II---任务就绪表

意思是:将变量OSRdyGrp中最低位为1的位数赋给y,那么,y就是最高优先级任务所在就绪表的行号,那么最高优先级的任务就在OSRdyGrp[y]行中,再根据。

weixin_45880844的博客 1649

MyCAT 介绍,MyCAT主要功能 ,MyCAT 安装,MyCAT 配置(使用可能遇到的另类问题,见文末)

MyCAT 介绍,MyCAT主要功能 ,MyCAT 安装,MyCAT 配置 MyCAT介绍 Mycat是一个介于数据库与应用之间,进行数据处理与交互的中间服务! 通俗点讲,应用层可以将它看作是一个数据库的代理(或者直接看成加强版数据库)。但是由于真正的数据库需要存储引擎,而 Mycat 并没有存储引擎,Mycat服务不保存真正的数据,所以并不是完全意义的分布式数据库系统。所以称Mycat这样类型的数据库中间代理服务的产品为数据库中间件。 MyCAT 主要功能 读写分离 系统可配置是否开启读写分离,不开启读

不知名摸鱼开发 8186

【QT/C++】事件过滤器之基于重写 eventFilter 方法的多种常见应用场景及实现

Qt事件过滤器通过重写eventFilter方法实现多种实用功能:1)鼠标事件处理(点击全选文本、禁用滚轮、悬停提示);2)键盘事件处理(输入内容限制、快捷键提交);3)焦点事件处理(自动弹出下拉框、实时验证);4)绘图事件处理(自定义控件绘制);5)窗口事件处理(防止意外关闭、尺寸限制)。事件过滤器提供非侵入式的事件处理方案,相比传统子类化方式更灵活,通过installEventFilter安装到目标控件即可实现各种交互增强功能。

yuhuasheng1997的博客 1484

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

mycat集群配置

鉴于以上Zookeepeer管理Mycat的优势,决定启用此方案 1.Zookpeer配置 参考来源 Mycat学习实战-Mycat的zookeeper集群模式_ygqygq2的IT博客-优快云博客_mycat zookeeper 企业实战_19_MyCat初始化ZK并配置Mycat支持ZK_Gblfy_Blog-优快云博客 2.搭建Mycat 我的使用习惯是先不基于zk,搭建单间点的,测试通过以后在同步配置,搭建集群。 2.1初始化zkconf配置 #进入conf目录 cd...

csdncjh的博客 521

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

mycat2的入门配置和使用

把 hosts 文件移动到桌面,打开方式选择记事本,在文末添加 ip 地址和域名(之间加一个空格),保存文件并重新移动回C:\Windows\System32\drivers\etc配置好之后直接访问下面两个地址下载即可。然后进入mycat目录的lib目录,然后把mycat2-1.20-jar-with-dependencies-2021-12-23.jar移入到lib目录.修改password,user以及url中的数据库名字,这里配置的是数据库的用户名和密码,并不是我们新创建的mycat用户和密码。

weixin_46079316的博客 1738

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

mycat 配置以及java 连mycat

三台服务器: 192.168.192.128 mycat服务器 192.168.192.129 mysql主服务器 192.168.192.132 mysq从服务器 schema.xml配置 [root@node1 conf]# vim schema.xml <?xml version="1.0"?> <!DOCTYPE mycat:schema SYST...

qq690452074的专栏 3078

mycat设置主键自增—sequence的配置

mycat参数文件配置 1. 配置server.xml文件 (#0 代表文件方式,#1 代表数据库方式,#2 代表本地时间戳方式) <property name="sequnceHandlerType">1</property> 2. 数据库配置 #所有操作都在一个物理数据库(dn1)上 #创建 MYCAT_SEQUENCE 表 #name sequence 名称 #current_value 当前 value #increment 增长步长! #mycat在数据库中一次读

ZHAIKE的博客 1701

mycat配置

/xml配置文件/其他配置/linux集群配置/mycat配置/mycat配置.txt流程: 1、安装数据库(直接上传的不能用,还是要安装),启动MySQL服务servicemysqlstart, 登录数据库mysql-uroot,设置远程登录权限GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'密码'WITHGRANT...

weixin_43292547的博客 397

mysql mycat 配置_MyCat简单使用与配置

基本配置1 . 在mycat/conf目录下,MyCat核心配置文件:schema.xmlselect user()2 . dataHost标签上属性释义:balance:负载均衡类型0:不开启读写分离机制,所有读操作都发送到当前可用的writeHost上1:全部的readHost与stand by writeHost参与select语句的负载均衡,2:所有读操作都随机在writeHost、rea...

weixin_32942557的博客 835

MyCAT配置文件讲解

他的配置文件挺有意思 如果要了解它怎么用 了解配置文件是很必要的‍以上就是MyCAT的大部分配置文件的作用 其实我本来想的是 直接去实战 但很多同志会懵 所有单独拿出一篇文章去讲一下 那么下一章 我们去进入实战环节‍。

2401_87853424的博客 1229

Docker中安装配置mycat

主数据库master :10.8.49.72 从数据salve:10.8.49.71 mycat:10.8.49.521.Mycat配置拷贝解压的mycat安装文件到Dockerfile安装目录下 配置mycat/conf/server.xml server.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mycat:server SYS

随风尘埃的博客 4236

mycat配置访问oracle_MyCat配置详解

MyCAT 配置解析server.xmlMycat的配置文件,设置账号、参数等schema.xmlMycat对应的物理数据库和数据库表的配置rule.xmlMycat分片(分库分表)规则一 :wrapper.conf--配置jdkwrapper.java.command=D:/Program Files/Java/jdk1.8.0_131/bin/java.exe二:server.xml1、use...

weixin_39959482的博客 626
上一篇: MySQL高可用
下一篇: SpringBoot和Mycat动态数据源项目整合
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值