MyCat - 配置文件详解 - schema.xml 之 dataNode 与 dataHost 配置详解 | 学习笔记

简介: 快速学习 MyCat - 配置文件详解 - schema.xml 之 dataNode 与 dataHost 配置详解

开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(一):MyCat - 配置文件详解 - schema.xml 之 dataNode 与 dataHost 配置详解】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/755/detail/13255


MyCat - 配置文件详解 - schema.xml 之 dataNode 与 dataHost 配置详解

内容介绍:

一、dataNode 标签

二、dataHost 标签

三、子标签 heartbeat

四、子标签 writeHost、readHost

 

一、dataNode 标签

<dataNode name="dn1" dataHost="host1" database="db1"/>

dataNode 标签中定义了 Mycat 中的数据节点,也就是我们通常说的数据分片。一个 dataNode 标签就是一个独立的数据分片。

具体的属性

属性

含义

描述

Name

数据节点的名称

需要唯一﹔在 table 标签中会引用这个名字,标识表与分片的对应关系

DataHost

数据库实例主机名称

引用自 dataHost 标签中 name 属性

Database

定义分片所属的数据库

 

<dataNode name="dn1" dataHost="locallosti" database="db1"/>

<dataNode name="dn2" dataHost="localhost2" database="db1”/>

<dataNode name="dn3" dataHost="localhost3" database="db1”/>

<dataHost name="localhost1" maxCon="1000" mincon="10" balance="0"

writeType="0" dbType="mysql" dbDriver="native" switchType="1"slaveThreshold="100">

<heartbeat>select user ()</ heartbeat>

<writeHost host="hostM1" url="192.168.192.157:3306"user="root" password=""itcast"></writeost></ dataHost>

Data node,叫做数据节点,里面有三个属性,分别是 name、data host 和database,配置的 dn1、dn2、dn3 实际上就是配置的数据节点的名称,这个名称可以随便起,但是要保证同一份配置文件当中的 datanode 是不能够重复的,数据节点指的是逻辑上的分片。这个分片对应的数据库是 db1。

 

二、dataHost 标签

<dataHost name="host1" maxCon="1000" mincon="10" balance="o"

writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"">

<heartbeat>select user()</heartbeat>

<writeHost host="hostw1" ur1="192.168.192.147:3306"user="root" password="itcast"></writeHost>

</ dataHost>

该标签在 Mycat 逻辑库中作为底层标签存在,直接定义了具体的数据库实例、读写分离、心跳语句。

Data host 有很多属性,还有一些子标签,首先看一下里面的属性配置。首先是name,可以随便起,Name 就是 datahost 的 name 值,里面还有 maxcon 和mincon,con 是 connection 的简写,这两个配置的是最大连接数和最小连接数,由于最终 my cat 还需要去连接 MySQL,My cat 是基于 JAVA 语言开发,在 mycat 里面也有一定的数据库连接值,Max CON 和 MinCON,指定数据库最大的连接数和最小的连接数,通过这两个参数去定义。Balance 指的是负载均衡类型,取值分别为 0123,通过 mycat 进行 mysql 读写分离。

属性

含义

描述

name

数据节点名称

唯一标识,供上层标签使用

maxCon

最大连接数

内部的 writeHost、readHost 都会使用这个属性

mincon

最小连接数

内部的 writeHost、readHost 初始化连接池的大小

balance

负载均衡类型

取值0,1,2,3 ﹔后面章节会详细介绍;

writeType

写操作分发方式

0︰读写操作都转发到第1台writeHost,writeHost1 挂了,会切换到writeHost2 上; <br/>“因为 writeHost是有多个的。

1 :所有的写操作都随机地发送到配置的writeHost 上 ;

DbType

后端数据库类型

指的是底层使用的数据库;mycat 不止能做mysql 的集群;

mysql, mongodb , oracle

dbDriver

数据库驱动

指定连接后端数据库的驱动,目前可选值有native 和 JDBC。native执行的是二进制的MysoL 协议,可以使用MysQz 和 MariaDB。其他类型数据库需要使用JDBC (需要在 Mycat/lib目录下加入驱动 jar )

switchType

数据库切换策略

取值-1,1,2,3 ﹔后面章节会详细介绍;

其中 balance 和 switchType 后面会详细讲解。Datahost 还有三个子标签,分别是 heartbeat、writehost 和 readhost。

 

三、子标签 heartbeat

heartbeat 翻译过来叫心跳,主要是维护 mycat 与 mysql 之间的状态监测。配置mycat 有后端数据库的心跳,用于检测后端数据库的状态。heartbeat 用于配置心跳检查语句。例如: MysQL 中可以使用 select user( ) , oracle 中可以使用 select 1 from dual 等。

<heartbeat>select user</ heartbeat>

也就是说,my cat 需要实时监测后端 MySQL,每隔一段时间就去监测一次客户端的 mysql 节点是否还存活,配置 heartbeat 里面就直接指定了一个 SQL 语句,原因就是 heartbeat 执行这个语句,这条 mysql 语句能够查询到内容就代表 mysql 还活着。如果查询不到,就代表 MySQL 已经挂掉。

image.png

通过日志是可以看出来的,刚才已经把 mycat 的日志输出出来,每隔几秒钟这块的日志就会刷新一下,说出这些日志,实际上就是心跳日志,里面有 select user,第一次的 select user 维护的是 Mycat 与 159 的心跳,第二次维护的是 Mycat 与 158 的心跳,第三次维护的是 Mycat 与 157 的心跳。

 

四、子标签 writeHost、readHost

指定后端数据库的相关配置,用于实例化后端连接池。writeHost 指定写实例,readHost 指定读实例。

在一个 dataHost 中可以定义多个 writdHost 和 readHost。但是,如果 writeHost指定的后端数据库宕机,那么这个 writeHost 绑定的所有 readHost 也将不可用。

属性:

属性名

含义

取值

Host

实例主机标识

对于 writeHost 一般使用 *M1; 对于readHost,一般使用 *s1 ;

Url

后端数据库连接地址

如果是 native,一般为ip:port ;如果是 JDBC,一般为 jdbc :mysql : / lip:port/

User

数据库用户名

root

Password

数据库密码

itcast

Weight

权重

在 readHost 中作为读节点权重

UsingDecryt

密码加密

默认 0 否,1 是

Host 可以随便定义,URL 是访问的地址,Weight 指的是权重,它可以去做读节点权重配置,UsingDecrypt,是否对访问数据库的密码进行加密操作。以上 schema中 data node 和 data host 的配置。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
9月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
2193 1
|
XML Java 数据格式
Spring从入门到入土(xml配置文件的基础使用方式)
本文详细介绍了Spring框架中XML配置文件的使用方法,包括读取配置文件、创建带参数的构造对象、使用工厂方法和静态方法创建对象、对象生命周期管理以及单例和多例模式的测试。
697 7
Spring从入门到入土(xml配置文件的基础使用方式)
|
12月前
|
XML Java 数据格式
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
本文介绍了在使用Spring框架时,如何通过创建`applicationContext.xml`配置文件来管理对象。首先,在resources目录下新建XML配置文件,并通过IDEA自动生成部分配置。为完善配置,特别是添加AOP支持,可以通过IDEA的Live Templates功能自定义XML模板。具体步骤包括:连续按两次Shift搜索Live Templates,配置模板内容,输入特定前缀(如spring)并按Tab键即可快速生成完整的Spring配置文件。这样可以大大提高开发效率,减少重复工作。
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
386 6
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
487 5
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
577 4
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
360 4
|
XML Java 应用服务中间件
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
这篇文章是关于Apache Tomcat服务器的目录结构、配置文件(特别是server.xml)的详细介绍和学习指南。
702 0
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
269 0
|
XML 存储 JSON
framework 的配置文件在.netcore里面不能用怎么处理?在.netcore中创建.xml配置文件
framework 的配置文件在.netcore里面不能用怎么处理?在.netcore中创建.xml配置文件
120 0

相关课程

更多