server.xml 概述

server.xml 是 Mycat 的核心配置文件,几乎保存了所有 Mycat 需要的系统配置信息。

主要配置内容

1. 系统参数配置

  • Mycat 服务端口(默认8066)
  • 管理端口(默认9066)
  • 字符集配置
  • 线程池大小
  • 连接超时时间

2. 用户权限配置

  • 定义访问 Mycat 的用户名和密码
  • 设置用户权限(如只读、读写权限)
  • 配置用户可访问的 schema

3. 防火墙配置

  • 设置 IP 白名单/黑名单
  • 配置 SQL 拦截规则
  • 定义 SQL 注入防护策略

4. 性能调优参数

  • 缓冲区大小设置
  • 连接池配置
  • 事务处理参数

全局序列号

在实现分库分表的情况下,数据库自增主键已经无法保证自增主键的全局唯一。MyCat提供了多种全局sequence实现方式:

0 - 文件存储方式

将数据以文件形式存储在本地文件系统中。

1 - 数据库存储方式

使用关系型数据库存储数据。

2 - 本地时间戳方式

ID采用64位二进制格式:

  1. 时间戳部分:42位,精确到毫秒级
  2. 机器标识部分:5位,支持最多32台机器
  3. 业务编码部分:5位,支持32种业务类型
  4. 序列号部分:12位,每毫秒可生成4096个序列号

3 - ZK与本地配置的分布式ID生成器

  • ZooKeeper集群维护全局配置
  • 本地缓存worker节点信息

4 - ZooKeeper递增方式

通过ZK的有序节点生成递增ID。

配置示例

<!-- 用户配置示例 -->
<user name="user">
    <property name="password">user</property>
    <property name="schemas">wzk_order</property>
</user>