从01开始 从01开始
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)
  • JavaSE

  • JavaSenior

  • JavaEE

  • JavaWeb

  • Spring

  • 主流框架

    • Redis

    • Mybatis

    • Lucene

    • Elasticsearch

    • MQ

    • MyCat

      • MyCat2-尚硅谷
      • MyCat是什么,为什么要用
      • 搭建环境
      • MyCat概念
      • MyCat的配置文件
        • MyCat自身的配置(server)
        • 用户(user)
        • 数据源(datasource)
        • 集群(cluster)
        • 逻辑库表(schema)
      • 一主一从复制
      • 一主一从读写分离
      • 双主双从复制方案
      • 分库分表
      • MyCat安全设置
      • Mycat2-UI
      • MyCat
    • Lombok

    • 主流框架
  • SpringMVC

  • SpringBoot

  • Java并发

  • Java源码

  • JVM

  • 韩顺平

  • Java
  • Java
  • 主流框架
  • MyCat
2023-06-28
目录

MyCat的配置文件

# 40.MyCat的配置文件

MyCat2的配置非常简单,甚至可以通过命令的方式来修改配置。   ‍

# MyCat自身的配置(server)

和服务相关的配置:/usr/local/mycat/conf/server.json​,例如配置了端口号8066,一些超时时间等,默认即可,这里不改动

‍

# 用户(user)

主要是配置连接MyCat时的用户信息,文件所在地址/usr/local/mycat/conf/users​:

ll /usr/local/mycat/conf/users
总用量 4
-rw-r--r--. 1 root root 107 6月  14 20:55 root.user.json
1
2
3

‍

命名方式:{用户名}.user.json​,例如上面就是配置root用户。里面的内容 cat root.user.json​:

{
	"dialect":"mysql",
	"ip":null,
	"password":"123456",
	"transactionType":"xa",
	"username":"root"
}
1
2
3
4
5
6
7

‍

‍

字段含义

  • ip:客户端访问​IP​,建议为空,填写后只接受该 IP​ 的请求

  • username:用户名

  • password:密码

  • transactionType:事务类型,可选值:

    • proxy 本地事务,在涉及大于 1 个数据库的事务,commit 阶段失败会导致不一致,但是兼容性最好

    • XA 事务,需要确认存储节点集群类型是否支持 XA

    • 可以通过语句查询:SELECT @@transaction_policy;​

    • 可以通过语句实现切换

      set transaction_policy = 'xa'

      set transaction_policy = 'proxy'

  • dialect:使用的数据库类型

  • isolation:可以加上这个设置,设置初始化的事务隔离级别。有如下取值:

    READ_UNCOMMITTED:1
    READ_COMMITTED:2
    REPEATED_READ:3,默认
    SERIALIZABLE:4
    
    1
    2
    3
    4

‍

‍

# 数据源(datasource)

配置Mycat连接的数据源信息,所在目录 mycat/conf/datasources​ 命名方式:{数据源名字}.datasource.json​,例如:

ll /usr/local/mycat/conf/datasources
总用量 4
-rw-r--r--. 1 root root 445 6月  14 21:46 prototypeDs.datasource.json
1
2
3

‍

我们可以看看里面的内容cat prototypeDs.datasource.json​:

{
	"dbType":"mysql",
	"idleTimeout":60000,
	"initSqls":[],
	"initSqlsGetConnection":true,
	"instanceType":"READ_WRITE",
	"maxCon":1000,
	"maxConnectTimeout":3000,
	"maxRetryCount":5,
	"minCon":1,
	"name":"prototypeDs",
	"password":"learnMycatPassword0520@",
	"type":"JDBC",
	"url":"jdbc:mysql://localhost:3306/learnMycat?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
	"user":"learnMycat",
	"weight":0
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

‍

其实我们在搭建环境的时候,已经配置过相关内容了。字段含义

  • dbType:数据库类型,例如MySQL。一般来说MyCat对MySQL的兼容性最好

  • name:数据源名字,一般和文件名里的一样

  • user:用户名

  • password:密码

  • type:数据源类型,默认 JDBC

  • url:访问数据库地址

  • idleTimeout:空闲连接超时时间

  • initSqls:初始化sql

  • initSqlsGetConnection:对于 jdbc 每次获取连接是否都执行 initSqls

  • instanceType:配置实例只读还是读写。可选值:READ_WRITE,READ,WRITE

  • weight :负载均衡权重

  • 和连接相关的配置:

    • "maxCon": 1000,最大连接数
    • "minCon": 1,最小连接数
    • "maxConnectTimeout": 3000,超时时间
    • "maxRetryCount": 5,最大重试次数

‍

‍

以上这么多字段我们不用背,后续我们讲怎么新增数据源

‍

# 集群(cluster)

所在目录 mycat/conf/clusters​,命名方式:{集群名字}.cluster.json​。例如:

ll /usr/local/mycat/conf/clusters/
总用量 4
-rw-r--r--. 1 root root 289 6月  14 20:55 prototype.cluster.json
1
2
3

‍

‍

里面的内容cat prototype.cluster.json​:

{
	"clusterType":"MASTER_SLAVE",
	"heartbeat":{
		"heartbeatTimeout":1000,
		"maxRetry":3,
		"minSwitchTimeInterval":300,
		"slaveThreshold":0
	},
	"masters":[
		"prototypeDs"
	],
	"maxCon":200,
	"name":"prototype",
	"readBalanceType":"BALANCE_ALL",
	"switchType":"SWITCH"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

‍

可以配置的字段:

  • clusterType:集群类型,可选值:

    • SINGLE_NODE:单一节点
    • MASTER_SLAVE:普通主从
    • GARELA_CLUSTER:PXC 集群
    • MHA:MHA 集群
    • MGR:MGR 集群
  • masters:配置主节点

  • replicas:配置从节点

  • readBalanceType:查询负载均衡策略,可选值:

    • BALANCE_ALL(默认值),获取集群中所有数据源
    • BALANCE_ALL_READ,获取集群中允许读的数据源
    • BALANCE_READ_WRITE,获取集群中允许读写的数据源,但允许读的数据源优先
    • BALANCE_NONE,获取集群中允许写数据源,即主节点中选择
  • switchType:切换类型,可选值:NOT_SWITCH不进行主从切换,SWITCH进行主从切换

‍

‍

# 逻辑库表(schema)

配置逻辑库表,实现分库分表,所在目录 mycat/conf/schemas​,命名方式:{库名}.schema.json​,例如:

ll /usr/local/mycat/conf/schemas/
总用量 8
-rw-r--r--. 1 root root 5299 6月  14 20:55 mysql.schema.json
1
2
3

‍

里面的内容很多,这里就不列出全部了。数据库配置:

{
    "schemaName": "mydb",
    "targetName": "prototype"
}
1
2
3
4

字段含义:

  • schemaName:逻辑库名
  • targetName:目的数据源或集群。targetName自动从prototype目标加载test库下的物理表或者视图作为单表,prototype必须是mysql服务器

‍

单表配置

{
    "schemaName": "mysql-test",
    "normalTables": {
        "role_edges": {
            "createTableSQL":null,//可选
            "locality": {
                "schemaName": "mysql",//物理库,可选
                "tableName": "role_edges",//物理表,可选
                "targetName": "prototype"//指向集群,或者数据源
            }
        }
    }
    .....
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

详细配置,后续讲分库分表时再说

在GitHub上编辑此页 (opens new window)
上次更新: 2023/6/28 11:11:51
MyCat概念
一主一从复制

← MyCat概念 一主一从复制→

Theme by Vdoing | Copyright © 2022-2023 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式