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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习 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 的配置。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
XML Java 数据格式
Spring从入门到入土(xml配置文件的基础使用方式)
本文详细介绍了Spring框架中XML配置文件的使用方法,包括读取配置文件、创建带参数的构造对象、使用工厂方法和静态方法创建对象、对象生命周期管理以及单例和多例模式的测试。
113 7
Spring从入门到入土(xml配置文件的基础使用方式)
|
3月前
|
XML Java 数据格式
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
Spring 第二节内容补充 关于Bean配置的更多内容和细节 万字详解!
239 18
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
|
3月前
|
XML Java 应用服务中间件
springMVC01,springMVC的执行流程【第一个springMVC例子(XML配置版本):HelloWorld】
通过一个HelloWorld实例,介绍了SpringMVC的基本概念、执行流程,并详细讲解了如何创建和配置第一个SpringMVC项目(基于XML)。
springMVC01,springMVC的执行流程【第一个springMVC例子(XML配置版本):HelloWorld】
|
2月前
|
XML Java 应用服务中间件
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
这篇文章是关于Apache Tomcat服务器的目录结构、配置文件(特别是server.xml)的详细介绍和学习指南。
81 0
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
|
2月前
|
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(一)
169 5
|
2月前
|
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(二)
124 4
|
2月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
82 4
|
2月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
83 0
|
2月前
|
XML 存储 JSON
framework 的配置文件在.netcore里面不能用怎么处理?在.netcore中创建.xml配置文件
framework 的配置文件在.netcore里面不能用怎么处理?在.netcore中创建.xml配置文件
32 0
|
2月前
|
安全 内存技术
【文件上传-配置文件】crossdomain.xml跨域策略配置文件上传
【文件上传-配置文件】crossdomain.xml跨域策略配置文件上传