logo
0
1
WeChat Login
xiaoohu2002<xiaoohu2002@163.com>
文档:README 表情与结构

MXCAT

MXCAT 是 MySQL 协议级数据库中间代理,提供单端口统一入口、读写分离、灰度发布与运维能力。内置治理与可观测组件,适用于需要统一入口与流量控制的生产场景。

✨ 核心能力

  • 🚀 单端口 MySQL 协议代理
  • 🎯 读写分离与一致性策略
  • ⚙️ 连接池、熔断与限流
  • 🔎 慢查询与路由追踪
  • 🧾 审计日志与安全拦截
  • 📈 Prometheus 指标导出
  • ❤️ 后端心跳检测(tcp/sql)与读节点回退
  • 🧩 纯集群高可用(无 VIP,bully/raft 选主)
  • 🛡️ 多用户鉴权与权限控制
  • 🔀 灰度发布与策略路由

🧭 快速开始

🚀 安装

curl -fsSL https://cnb.cool/qianyios/Mxcat/-/git/raw/master/scripts/install.sh | bash

⚙️ 最小可用配置(单节点)

base: rw_mode: 0 read_consistency: strict frontend: listen_addr: 0.0.0.0:8066 mysql: users: - username: app password: app_pass db_group: default backend: db_groups: - name: default write_nodes: - addr: 127.0.0.1:3306

❤️ HA 最小追加(集群)

ha: enabled: true mode: "cluster" local_ip: "10.0.0.101" discovery: static_nodes: - address: "10.0.0.101" - address: "10.0.0.102"

▶️ 启动

  • 前台:${MXCAT_HOME}/bin/mxcat
  • 后台:${MXCAT_HOME}/bin/mxcat-server start

✅ 连接验证

mysql -h 127.0.0.1 -P 8066 -u app -p

连接后可执行:SHOW MXCAT HELP。

🧩 模块速览

  • frontend:入口监听、慢查询、路由追踪、审计与安全策略
  • mysql.backend:后端分组、读写节点、连接池、熔断与限流
  • mysql.users:前端用户与库权限控制
  • admin_server:管理面 API(JWT/API Key、审计、灰度、配置版本)
  • ha:纯集群高可用(无 VIP),支持 bully/raft
  • mysql.sharding:分库分表与全局表/ER 关系
  • metrics:Prometheus 指标与标签维度

🛡️ 管理面(Admin Server)

管理面提供节点、配置、灰度与审计等能力,建议启用 JWT 或 API Key,并限制监听地址为内网或本机。

文档与页面入口:

  • http://:9110/swagger
  • http://:9110/redoc
  • http://:9110/gray/editor

Swagger 授权:

  • token 模式:Bearer
  • JWT 模式:Bearer
  • API Key:ApiKey <API_KEY>

📚 文档导航

完整使用手册见 WIKI.md

🧪 测试

建议执行全量测试并查看覆盖率,输出文件为 coverage.out。