mycat配置详解

一、mycat配置全局表

在mycat配置的过程中,我们需要创建全局表。全局表是对应于实际表的表结构,用来定义一张表的结构和使用规则,这样做的好处是可以灵活地控制每一张表的权限控制,同时也可以减轻实际表的压力。

在mycat配置的过程中,我们需要在global.xml文件中进行配置。

<?xml version="1.0"?>
  <!DOCTYPE mycat:config SYSTEM "schema/mycat-config.dtd">
  <mycat:config xmlns:mycat="http://io.mycat/2015/01/config">
      <!--配置全局表-->
      <schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1,dn2">
          <table name="t_order" primaryKey="id" dataNode="dn1,dn2">
              <childTable name="t_order_item" joinKey="order_id" primaryKey="id" dataNode="dn1,dn2"/>
          </table>
      </schema>
  </mycat:config>

二、mybatis配置log

mycat支持mybatis,我们可以在mybatis中配置log。在配置log时,我们可以选择控制输出的级别,同时还可以控制输出的方式:在控制台、文件、日志平台等。

我们需要在mybatis配置文件中增加一个log对象即可:

<settings>
      <!--配置mybatis日志-->
      <setting name="logImpl" value="LOG4J"/>
  </settings>

三、mycat配置文件

在mycat配置文件中,我们需要配置数据库地址、用户名、密码等信息。默认的配置文件为mycat.yml。

以下是一个样例配置文件:

system:
  user: root
  password: 123456
  
# 集群名称
cluster:
  name: mycat-cluster
  heartbeat: true
  # 集群节点列表
  nodes:
  - ip: 192.168.1.100
  - ip: 192.168.1.101

# 数据库地址列表
dataHosts:
- name: dn1
  hm1: 192.168.1.100:3306
  hm2: 192.168.1.101:3306
  maxCon: 200 #最大连接数
  minCon: 10 #最小连接数
  balance: 0 #负载平衡
  switchType: 2 #切换模式
  mysql:
      user: root
      password: 123456
      usePool: true  

四、idle配置tomcat

在mycat中同样可以配置tomcat,下面我们来介绍如何在mycat中配置tomcat:

我们需要在server.xml中增加一段元数据:

<Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false">
          <Context path="/cat" docBase="cat.war" reloadable="true"/>
      </Host>
  </Engine>

五、mycat配置详解

在mycat配置文件中,我们可以设置一些全局变量:

  • backSocketPoolSize:后端socket连接池大小
  • confHome:配置文件目录
  • dataDir:数据文件目录
  • idType:ID类型
  • proxyPort:代理端口
  • proxyBufferCapacity:代理缓冲区大小
  • proxyIdleTimeout:代理连接空闲超时时间
  • sequnceHandlerType:序列处理类型
  • userDatagramProtocolServerPort:UDP服务端口

以下是一个样例配置:

#代理端口
proxyPort: 8066

#配置目录
confHome: /usr/local/mycat/conf

#数据目录
dataDir: /usr/local/mycat/data

#后端socket连接池大小
backSocketPoolSize: 50

#ID类型
idType: 1

#代理缓冲区大小
proxyBufferCapacity: 204800

#代理连接空闲超时时间
proxyIdleTimeout: 1800000

#序列处理类型
sequnceHandlerType: 1

#UDP服务端口
userDatagramProtocolServerPort: 8067

六、mycat配置一个节点

我们可以使用以下命令在mycat中创建一个节点:

CREATE NODE db1
  ADDRESS 192.168.1.101
  PORT 3306
  CHECKED false
  SSL_MODE disabled
  WEIGHT 1
  TYPE READ_WRITE_SPLIT
  DB_TYPE mysql
  COMMENTS 'mysql1';

七、mycat配置文件详解

在mycat配置文件中,我们可以配置以下内容:

  • dataHosts:数据节点配置
  • dataHostsCache:数据节点缓存策略配置
  • databaseTypes:数据库类型配置
  • dataNodes:数据节点配置
  • dataHostGroups:数据节点分组配置
  • schemaMappings:Schema配置
  • userMappings:用户权限配置

以下是一个样例配置:


#数据节点配置
dataHosts:
  #MySQL服务器地址配置
  - address: 192.168.1.100
    port: 3306
    user: root
    password: 123456
    name: dn1
    minConn: 10
    maxConn: 100
    balance: 1
    writeType: 0
  - address: 192.168.1.101
    port: 3306
    user: root
    password: 123456
    name: dn2
    minConn: 10
    maxConn: 100
    balance: 1
    writeType: 0

#数据节点分组配置
dataHostGroups:
  #主从分离策略配置
  - name: master_slave
    #主节点地址
    master:
        name: dn1
    #从节点地址
    slave:
        - name: dn2
    #读写分离策略配置
    balance:
        type: 0
        read: dn1,dn2
        write: dn1

八、mycat配置与启动

我们可以使用以下命令来启动mycat:

./bin/mycat start
./bin/mycat stop

九、mycat配置oracle

在mycat配置文件中,我们同样可以配置oracle数据库:

schemaName: oracledb
backendType : oracle
dataHosts :
  - address : 192.168.1.101
    port : 1521
    user : test
    password : test
    name : db-1

十、Mycat配置特别复杂

如果你的Mycat配置非常复杂,你可以使用mycat-sever-xxxx-cluster.jar控制mycat的启动和停止,使用mycat-sever-xxxx-console.jar进行监控、查询等相关操作。

使用mycat-sever-xxxx-cluster.jar启动和停止mycat:

java -cp mycat-sever-xxxx-cluster.jar org.opencloudb.mycat.server.MycatStartup start
java -cp mycat-sever-xxxx-cluster.jar org.opencloudb.mycat.server.MycatShutdown

使用mycat-sever-xxxx-console.jar进行监控、查询等操作:

java -cp mycat-sever-xxxx-console.jar org.opencloudb.mycat.console.ConsoleClient -h 192.168.1.101 -P 9066 -u test -p test

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/276185.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-17 19:38
下一篇 2024-12-19 13:20

相关推荐

  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • Java BigDecimal 精度详解

    一、基础概念 Java BigDecimal 是一个用于高精度计算的类。普通的 double 或 float 类型只能精确表示有限的数字,而对于需要高精度计算的场景,BigDeci…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25

发表回复

登录后才能评论