Mycat搭建读写分离

news2024/9/20 13:47:37
  • 启动Mycat
    • 进入 /mycat/conf/datasources目录下,修改prototypeDs.datasource.json文件

  • 去mycat/bin目录用启动mycat  ./mycat start  (关闭mycat   ./mycat stop)
  • 连接mycat  默认端口8066 用户名root 密码123456

注意:这里ip设为null表示任何ip都可以访问

            transcationType: xa表示跨库的事务 proxy表示本地事务(效率高)           

  • Mycat配置

  • mysql.schema.json
    • customTables 用自定义分片算法的表
    • globalTables   全局表,广播表
    • normalTables 正常主从复制/读写分离的表
    • shardingTables  分片的表

 

  • mycat搭建读写分离
    • 读写分离架构

  • 创建数据源(可以通过mycat语法设定/也可以通过该配置文件设定)这里我们采用mycat推荐的语法
    • 创建主节点数据源dw0

  /*+ mycat:createDataSource{

      "dbType":"mysql",

      "idleTimeout":60000,

      "initSqls":[],

      "initSqlsGetConnection":true,

      "instanceType":"READ_WRITE",

      "maxCon":1000,

      "maxConnectTimeout":3000,

      "maxRetryCount":5,

      "minCon":1,

      "name":"dw0",

      "password":"root",

      "type":"JDBC",

      "url":"jdbc:mysql://10.20.2.29:3306?useUnicode=true&serverTimezone=UTC&characterEncoding=UTF-8",

      "user":"root",

      "weight":0

} */;

  • 创建从节点数据源dr0

  /*+ mycat:createDataSource{

       "dbType":"mysql",

       "idleTimeout":60000,

       "initSqls":[],

       "initSqlsGetConnection":true,

       "instanceType":"READ",

       "maxCon":1000,

       "maxConnectTimeout":3000,

       "maxRetryCount":5,

       "minCon":1,

       "name":"dr0",

       "password":"root",

       "type":"JDBC",

       "url":"jdbc:mysql://10.20.2.29:3308?useUnicode=true&serverTimezone=UTC&characterEncoding=UTF-8",

       "user":"root",

       "weight":0

 } */;

  • 去检查一下配置文件是否创建成功

  • 也可以通过mycat语法去查询 /*+ mycat:showDataSources*/;

  • 创建集群(去指定哪些数据源)

/*! mycat:createCluster{

    "clusterType":"MASTER_SLAVE",

    "heartbeat":{

        "heartbeatTimeout":1000,

        "maxRetry":3,

        "minSwitchTimeInterval":300,

        "slaveThreshold":0

    },

    "masters":[

        "dw0" //主节点

    ],

    "maxCon":2000,

    "name":"c0",

    "readBalanceType":"BALANCE_ALL",

    "replicas":[

        "dr0" //从节点

    ],

    "switchType":"SWITCH"

} */;

  • 这里一样可以去配置文件上查看有没有生成c0的配置

  • 也可以通过mycat语法查询

  • 创建逻辑表(指向集群)
    • 创建Schema

/*+ mycat:createSchema{

       "customTables":{},

       "globalTables":{},

       "normalTables":{},

       "schemaName":"masterToSlave",

       "shardingTables":{},

       "targetName":"c0",

 } */;

  • 创建逻辑库 create database masterToSlave;
  • 创建逻辑表 CREATE TABLE masterToSlave.`test` (

`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT ' ', `remark` varchar(255) DEFAULT NULL COMMENT ' ', PRIMARY KEY (`id`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COMMENT='test';

 

  • 测试主从
    • INSERT INTO masterToSlave.`test` VALUES (2,'3333');    插入数据查看主从节点是否都有数据
  • 测试读写分离
    • 由于集群中配置的"readBalanceType":"BALANCE_ALL",因此主从节点上它都会去读
    • 测试的时候,可以把从库的一笔数据update一下,使它和主库不一致,方便测试Mycat当前读取是从主库还是从库上读取的
    • 如果只想从主节点上读取数据,就把集群中的"readBalanceType":"BALANCE_NONE"
      • 当有事务强一致性要求时,需要从主节点读取数据,我们可以在程序中@Transactional动态的设定这个值,它是立马生效的,无需重启。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2145666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习笔记】SSL/TLS安全机制之CAA

1、概念界定 CAA全称Certificate Authority Authorization,即证书颁发机构授权,每个CA都能给任何网站签发证书。 2、CAA要解决的问题 例如,蓝色网站有一张橙色CA颁发的证书,我们也知道还有许多其他的CA;中间人可以说服…

JACM23 - A New Algorithm for Euclidean Shortest Paths in the Plane

前言 如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 本文关注的问题为计算几何学中的经典问题,即「在平面上给定一组两两不相交的多边形障碍物,寻找两点…

Redis(redis基础,SpringCache,SpringDataRedis)

文章目录 前言一、Redis基础1. Redis简介2. Redis下载与安装3. Redis服务启动与停止3 Redis数据类型4. Redis常用命令5. 扩展数据类型 二、在Java中操作Redis1. Spring Data Redis的使用1.1. 介绍1.2. 环境搭建1.3. 编写配置类,创建RedisTemplate对象1.4. 通过Redis…

助力数字农林业发展服务香榧智慧种植,基于嵌入式端超轻量级模型LeYOLO全系列【n/s/m/l】参数模型开发构建香榧种植场景下香榧果实检测识别系统

作为一个生在北方但在南方居住多年的人,居然头一次听过香榧(fei)这种作物,而且这个字还不会念,查了以后才知道读音(fei),三声,这着实引起了我的好奇心,我相信…

C++入门基础知识75(高级)——【关于C++ Web 编程】

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于C Web 编程的相关内容! 关于…

HomeAssistant显示节假日

先看效果 步骤&#xff1a; 新建卡片时选择“Markdown 卡片”代码在文章最下方&#xff0c;当然你也可以自己修改 点击保存/完成 ### {% if now().hour > 6 and now().hour < 9 -%} 早上好&#xff0c; {%- elif now().hour > 9 and now().hour < 12 -%} 上午好…

【SSM-Day2】第一个SpringBoot项目

运行本篇中的代码&#xff1a;idea专业版或者idea社区版本&#xff08;2021.1~2022.1.4&#xff09;->这个版本主要是匹配插件spring boot Helper的免费版(衰) 【SSM-Day2】第一个SpringBoot项目 框架->Spring家族框架快速上手Spring BootSpring Boot的作用通过idea创建S…

【iOS】引用计数

引用计数 自动引用计数引用计数内存管理的思考方式自己生成的对象&#xff0c;自己所持有非自己生成的对象&#xff0c;自己也能持有不再需要自己持有的对象时释放无法释放非自己持有的对象 自动引用计数 自动引用计数(ARC,Automatic Reference Counting)是指内存管理中对引用…

最新多模板测算系统源码 测算系统海外多语言版

最新多模板测算系统源码 测算系统海外多语言版 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89763600 更多资源下载&#xff1a;关注我。

10年408考研真题-数据结构

23.[2010统考真题]若元素 a,b,c,d,e,f 依次进栈&#xff0c;允许进栈、退栈操作交替进行&#xff0c;但不允许连续3次进行退栈操作&#xff0c;不可能得到的出栈序列是(D)。 A.dcebfa B.cbdaef C.bcaefd D.afedcb 解析&#xff1a;直接看D选项&#xff0c…

基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 支持向量机&#xff08;SVM&#xff09; 4.2 WOA 4.3 WOA优化SVM参数 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核…

探索开放资源上指令微调语言模型的现状

人工智能咨询培训老师叶梓 转载标明出处 开放模型在经过适当的指令调整后&#xff0c;性能可以与最先进的专有模型相媲美。但目前缺乏全面的评估&#xff0c;使得跨模型比较变得困难。来自Allen Institute for AI和华盛顿大学的研究人员们进行了一项全面的研究&#xff0c;探索…

eNSP简单用法

建立一个简单的拓扑图 点击绿色三角开启设备 双击设备可以进行命令编辑 视图 分为三个视图&#xff1a;用户视图、系统视图、接口视图 用户视图 在默认模式下就是&#xff0c;为<huawei> 按ctrlz返回用户视图 系统视图&#xff1a; 在用户视图下输入sys切换&#…

【数据可视化】Arcgis api4.x 热力图、时间动态热力图、timeSlider时间滑块控件应用 (超详细、附免费教学数据、收藏!)

1.效果 目录 1.效果 2.安装配置 3.热力图 4.TimeSlider滑块应用 4.1 时间滑块控件 4.2 添加控件 5.时间动态热力图 2.安装配置 这里不教大家如何在前端框架使用arcgis api。不过npm安装、css如何引入、教学数据存放与图层加载的教程&#xff0c;可以浏览我之前发的一篇文…

基于DeepCFD模型和CNN/U-Net模型的流场预测

1.遇到问题 计算流体力学&#xff08;Computational fluid dynamics, CFD&#xff09;通过对Navier-Stokes方程&#xff08;简称N-S方程&#xff09;的精确求解&#xff0c;能够精准获取流体在不同状态下的物理量分布详情&#xff0c;这些物理量包括但不限于密度、压力及速度等…

Nginx从入门到入土(二): 学习内容与安装

Nginx学习内容 1.理解Nginx在实际项目中的应用场景 2.理解正向代理和反向代理 3.Nginx在Linux和Windows上的安装 4.Nginx的运行模型概念与日志管理 5.Nginx.config核心配置文件与配置HTTPS证书 6.基于Nginx解决跨域&#xff0c;实现防盗链&#xff0c;缓存&#xff0c;压…

windows C++ 并行编程-异步消息块(一)

代理库提供了多种消息块类型&#xff0c;使你能够以线程安全的方式在应用程序组件之间传播消息。 这些消息块类型通常与 concurrency::send、concurrency::asend、concurrency::receive 和 concurrency::try_receive 等各种消息传递例程配合使用。 本文包含以下各节&#xff1…

C#通过MXComponent与三菱PLC通信

1&#xff0c;MXComponent安装包与手册。 https://download.csdn.net/download/lingxiao16888/89767137 2&#xff0c;使用管理员权限打开MXComponent&#xff0c;并进行配置。 3&#xff0c;引用相应的类库。 //通信类库 ActUtlTypeLib.dll或者ActProgType.dll 注明&#x…

Excel常用函数大全

Excel常用函数介绍与示例应用 在Excel中&#xff0c;函数是进行数据处理和分析的强大工具。对于新手来说&#xff0c;掌握一些基本的函数使用方法能够大大提升工作效率。以下是一份通俗易懂、适合新手的Excel函数使用方法总结&#xff1a; 1. 求和函数&#xff08;SUM&#x…

leetcode75-9 压缩字符串 双指针原地算

题目太复杂了 没做出来 计算过程大概是双指针处理数组&#xff0c; 其中两个知识点一个是length 字符数组直接加 不用加括号 还有就是数字转字符需要转换 数字转换成字符 不能直接转换&#xff01; 需借助数字转字符串&#xff0c; 首先将数字转为字符串&#xff0c;…