Mycat搭建读写分离

  • 启动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.xdnf.cn/news/1538501.html

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

相关文章

【设计模式-组合】

**Composite Pattern(组合模式)**是一种结构型设计模式,旨在将对象组合成树形结构,以表示“部分-整体”的层次结构。这种模式允许客户端以统一的方式处理单个对象和对象集合,从而简化了树形结构的处理。 核心思想 组…

LLM应用实战: 文档问答系统Kotaemon-1. 简介及部署实践

1.背景 本qiang~这两周关注到一个很火的开源文档问答系统Kotaemon,从8月28日至今短短两周时间,github星标迅猛增长10K,因此计划深挖一下其中的原理及奥秘。 本篇主要是Kotaemon的简介信息,涉及到主要特点,与传统文档…

MindShare PCIE 3.0 笔记-第一二章

MindShare 官网,地址如下: MindShare Chapter 1:PCIE 背景介绍 - PCI 总线模型 1. 以 PCI 总线作为外设总线的 SOC 芯片架构 下图展示了一个以 PCI 总线作为外设总线的 SOC 芯片架构(PCI 总线类似 AXI 下的 AHB?): 由上图可知…

虚拟机与物理机的文件共享

之前往虚拟机里传文件都是直接拖拽或者借助工具上传,都不太方便,倘若物理机的文件直接能在虚拟机里读取使用,那多好啊~ 1 虚拟机设置 注意文件夹名称不要中文/空格 2 验证Kali下分享文件夹功能是否启用 vmware-hgfsclient 3 创建挂载目录…

数据库基础知识---------------------------(2)

MYSQL的存储过程 就是数据库 SQL 语言层面的代码封装与重用 语法格式 delimiter 自定义结束符号 create procedure 存储名({in,out,inout} 参数名,数据类型...) begin sql 语句 end 自定义结束符 delimiter; 变量定义 局部变量 用户自定义 仅在begin / end 块中有效 当将查询…

apach httpd多后缀解析漏洞

漏洞详情: httpd支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。 那么,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。 利用这个特性,可以绕过…

Linux硬连接、软连接和复制的区别

‌硬连接、软连接和复制在Linux系统中的主要区别体现在以下三点: 文件链接的方式文件独立性文件系统的操作上。‌ 一、硬连接 1. 硬连接是通过ln命令创建的,它为文件创建别名,与源文件共享同一inode号码,因此硬连接和源文件实际…

Mint Expedition Season 3 拉开帷幕:登顶高峰的时刻到了

自 7 月 15 日 Mint Expedition 启动以来,Mint,一条专注于 NFT 行业的以太坊 Layer 2,日常交易量和交易额都出现了爆发式增长。这一成功离不开 Mint 社区的合作,包括 Minters、Web3 去中心化应用程序的开发者,以及大量…

02 ETH

以太坊与比特币有什么不同? 以太坊立足比特币创新之上,于 2015 年启动,两者之间有一些显著不同。 比特币就仅仅是比特币;以太坊包括以太币,以太币才是和比特币对等的存在。以太坊是可编程的,所以你可以在…

示例:WPF中Grid显示网格线的几种方式

一、目的:介绍一下WPF中Grid显示网格线的几种方式 二、几种方式 1、重写OnRender绘制网格线(推荐) 效果如下: 实现方式如下: public class LineGrid : Grid{protected override void OnRender(DrawingContext dc){Pen…

SQL 多表联查

目录 1. 内联接(INNER JOIN) 2. 左外联接(LEFT JOIN) 3. 右外联接(RIGHT JOIN) 4. 全外联接(FULL JOIN) 5. 交叉联接(CROSS JOIN) 6. 自联接&#xff0…

MATLAB系列07:稀疏矩阵、单元阵列和结构

MATLAB系列07:稀疏矩阵、单元阵列和结构 7. 稀疏矩阵、单元阵列和结构7.1 稀疏矩阵7.1.1 sparse数据类型7.1.1.1 产生稀疏矩阵7.1.1.2 稀疏矩阵的运算 7.2 单元阵列(cell array)7.2.1 创建单元阵列7.2.1.1 用赋值语句创建单元阵列7.2.1.2 用cell函数创建单元阵列 7.…

Day02Day03

1. 为什么拦截器不会去拦截/admin/login上,是因为在SpringMvc中清除了这种可能。 2.使用自己定义注解,实现AOP(insert ,update) 3.使用update最好使用动态语句,可以使用多次 4.使用阿里云的OSS存储。用common类 5.在写…

【BoF】《Bag of Freebies for Training Object Detection Neural Networks》

arXiv-2019 https://github.com/dmlc/gluon-cv 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method4.1 Visually Coherent Image Mixup for Object Detection4.2 Classification Head Label Smoothing4.3 Data Preprocessing4.4 Traini…

[Redis][Redis简介]详细讲解

目录 1.认识 Redis2.Redis 特性1.速度快2.基于键值对的数据结构的服务器3.丰富的功能4.简单稳定5.客户端语言多6.高扩展性7.持久化(Persistence)8.主从复制9.⾼可⽤和分布式 3.Redis 使用场景1.数据库2.Cache3.消息队列 4.注意 1.认识 Redis Redis是⼀种基于键值对(Key-Value)…

Why Is Prompt Tuning for Vision-Language Models Robust to Noisy Labels?

文章汇总 本文的作者针对了提示学习的结构设计进行了分析,发现了一些规律: 1)固定的类名令牌为模型的优化提供了强正则化,减少了由噪声样本引起的梯度。 2)从多样化和通用的web数据中学习到的强大的预训练图像文本嵌入为图像分类提供了强大…

ARM总复习

1.计算机的组成 输入设备 输出设备 存储设备 运算器 控制器、总线 2.指令和指令集 2.1 机器指令 机器指令又叫机器码,在运算器内部存在各种运算电路,当处理器从内存中获取一条机器指令,就可以按照指令让运算器内部的指定的运算电路进行运…

百度智能云SSL证书安装指南

第一步:准备SSL证书 在华测ctimall(https://www.ctimall.com/ssl)申请SSL证书后,您会收到一个包含多种证书格式的压缩文件。请解压此文件,并找到Nginx目录中的证书文件,因为这是百度智能云中需要用到的证书…

Hadoop的一些高频面试题 --- hdfs、mapreduce以及yarn的面试题

文章目录 一、HDFS1、Hadoop的三大组成部分2、本地模式和伪分布模式的区别是什么3、什么是HDFS4、如何单独启动namenode5、hdfs的写入流程6、hdfs的读取流程7、hdfs为什么不能存储小文件8、secondaryNameNode的运行原理9、hadoop集群启动后离开安全模式的条件10、hdfs集群的开机…

九章云极DataCanvas公司荣获2024年服贸会“科技创新服务示范案例”

9月15日,2024年中国国际服务贸易交易会(服贸会)示范案例交流会暨颁奖典礼在北京国家会议中心举行,九章云极DataCanvas 公司自研的DataCanvas Alaya NeW智算操作系统凭借卓越的AI创新实力、前瞻性的市场布局以及突破性的技术革新成…