MyCat配置文件详解(二,爆火的Java面试题

属性如下 :

  1. name
    定义逻辑表的表名 , 在该逻辑库下必须唯一。
  2. dataNode
    定义的逻辑表所属的dataNode , 该属性需要与dataNode标签中的name属性

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

值对应。 如果一张表拆分的数据,存储在多个数据节点上,多个节点的名称使用","分隔 。

  1. rule
    该属性用于指定逻辑表的分片规则的名字, 规则的名字是在rule.xml文件中定义的, 必须与tableRule标签name属性对应。

  2. ruleRequired
    该属性用于指定表是否绑定分片规则, 如果配置为true, 但是没有具体的rule, 程序会报错。

  3. primaryKey
    逻辑表对应真实表的主键
    如: 分片规则是使用主键进行分片, 使用主键进行查询时, 就会发送查询语句到配置的所有的datanode上; 如果使用该属性配置真实表的主键, 那么MyCat会缓存主键与具体datanode的信息,再次使用主键查询就不会进行广播式查询了, 而是直接将SQL发送给具体的datanode

  4. type
    该属性定义了逻辑表的类型,目前逻辑表只有全局表普通表
    全局表:type的值是 global , 代表 全局表
    普通表:无

  5. autoIncrement
    mysql对非自增长主键,使用last_insert_id() 是不会返回结果的,只会返回0。所以,只有定义了自增长主键的表,才可以用last_insert_id()返回主键值。 mycat提供了自增长主键功能,但是对应的mysql节点上数据表,没有auto_increment,那么在mycat层调用last_insert_id()也是不会返回结果的。
    如果使用这个功能, 则最好配合数据库模式的全局序列。使用 autoIncrement="true" 指定该表使用自增长主键,这样MyCat才不会抛出 “分片键找不到” 的异常。 autoIncrement 的默认值为false。

  6. needAddLimit
    指定表是否需要自动在每个语句的后面加上limit限制, 默认为true


参考资料:《开源数据库中间件MyCat实战笔记》
快速入手通道:发送简信“MyCat资料”免费获取

二、dataNode 标签

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

具体的属性 :

属性含义描述
name数据节点的名称需要唯一 ; 在table标签中会引用这个名字, 标识表与分片的对应关系
dataHost数据库实例主机名称引用自 dataHost 标签中name属性
database定义分片所属的数据库

三、dataHost 标签


select user()

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

1.属性

属性含义描述
name数据节点名称唯一标识, 供上层标签使用
maxCon最大连接数内部的writeHost、readHost都会使用这个属性
minCon最小连接数内部的writeHost、readHost初始化连接池的大小
balance负载均衡类型取值0,1,2,3 ; 后面章节会详细介绍;
writeType写操作分发方式0 : 写操作都转发到第1台writeHost, writeHost1挂了, 会切换到writeHost2上;1 : 所有的写操作都随机地发送到配置的writeHost上 ;
dbType后端数据库类型mysql, mongodb , oracle
dbDriver数据库驱动指定连接后端数据库的驱动,目前可选值有 native和JDBC。native执行的是二进制的MySQL协议,可以使用MySQL和MariaDB。其他类型数据库需要使用JDBC(需要在MyCat/lib目录下加入驱动jar)
switchType数据库切换策略取值 -1,1,2,3 ; 后面章节会详细介绍;

2.子标签heartbeat

配置MyCat与后端数据库的心跳,用于检测后端数据库的状态。heartbeat用于配置心跳检查语句。例如 : MySQL中可以使用 select user(), Oracle中可以使用 select 1 from dual等。

3.子标签writeHost、readHost

可以使用 select user(), Oracle中可以使用 select 1 from dual等。

3.子标签writeHost、readHost

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值