# mycatapache/mycat-server

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/mycatapache-mycat-server).**

9,529 stars · 3,816 forks · Java · GPL-2.0

## Links

- GitHub: https://github.com/MyCATApache/Mycat-Server
- awesome-repositories: https://awesome-repositories.com/repository/mycatapache-mycat-server.md

## Description

Mycat-Server is a MySQL database middleware system that functions as a sharding proxy, distributed database coordinator, and high availability manager. It acts as a proxy layer that routes SQL traffic between applications and multiple backend MySQL database instances to enable horizontal scaling.

The system coordinates distributed transactions, generates global unique sequences to prevent primary key collisions, and executes distributed join queries across multiple database shards. It includes a load balancer that performs read-write splitting by directing traffic between primary and slave nodes.

The project covers broader capabilities in traffic management, such as connection lifecycle monitoring and protocol translation. It also implements security measures including IP-based access control and multi-tenant data isolation, alongside heartbeat-based health monitoring for automatic failover.

## Tags

### Data & Databases

- [Database Sharding](https://awesome-repositories.com/f/data-databases/database-sharding.md) — Provides a sharding architecture that distributes relational data across multiple physical nodes for horizontal scaling.
- [MySQL Proxy Middleware](https://awesome-repositories.com/f/data-databases/mysql-proxy-middleware.md) — Functions as a proxy layer routing SQL traffic between applications and multiple backend MySQL instances.
- [Data Sharding](https://awesome-repositories.com/f/data-databases/data-sharding.md) — Distributes relational data across physical database nodes using configurable rules to enable horizontal scaling.
- [Read and Write Splitting](https://awesome-repositories.com/f/data-databases/read-and-write-splitting.md) — Directs write operations to primary nodes and read operations to slave nodes to optimize resource utilization.
- [Sharding Proxies](https://awesome-repositories.com/f/data-databases/sharding-proxies.md) — Implements a network layer that distributes data across multiple database instances using specific sharding logic.
- [Unique Identifier Generators](https://awesome-repositories.com/f/data-databases/data-management/unique-identifier-generators.md) — Generates globally unique primary keys across distributed environments to prevent data collisions.
- [Database Query Joins](https://awesome-repositories.com/f/data-databases/database-query-joins.md) — Executes complex join queries across multiple database shards using global tables and sharding strategies. ([source](https://github.com/mycatapache/mycat-server#readme))
- [High Availability Configurations](https://awesome-repositories.com/f/data-databases/high-availability-configurations.md) — Ensures service continuity and data redundancy across distributed database clusters through automatic failover.
- [Statement Routing](https://awesome-repositories.com/f/data-databases/prepared-statements/statement-routing.md) — Translates prepared queries into standard SQL to identify the correct backend destination for routing. ([source](https://github.com/MyCATApache/Mycat-Server/wiki/%E5%BC%80%E5%8F%91%E7%AF%87%EF%BC%9A1.0-%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%BF%9E%E6%8E%A5%E9%85%8D%E7%BD%AE))
- [Replica Load Balancers](https://awesome-repositories.com/f/data-databases/replica-load-balancers.md) — Distributes query traffic across a cluster of database replicas to optimize resource utilization. ([source](https://github.com/mycatapache/mycat-server#readme))
- [Reference Table Replication](https://awesome-repositories.com/f/data-databases/table-definitions/object-mappings/table-to-code-mappers/reference-table-replication.md) — Optimizes distributed joins by replicating small reference tables across all cluster nodes to enable local execution.

### DevOps & Infrastructure

- [Database Proxying](https://awesome-repositories.com/f/devops-infrastructure/database-proxying.md) — Provides a middleware layer that routes and optimizes database queries between applications and storage nodes. ([source](https://github.com/mycatapache/mycat-server#readme))
- [Heartbeat Monitors](https://awesome-repositories.com/f/devops-infrastructure/worker-node-management/heartbeat-monitors.md) — Uses periodic heartbeat signals to track node availability and trigger automatic failover for high availability.

### Software Engineering & Architecture

- [Distributed Transaction Coordinators](https://awesome-repositories.com/f/software-engineering-architecture/distributed-transaction-coordinators.md) — Coordinates transactions across multiple database nodes to ensure data consistency using shared protocols. ([source](https://github.com/mycatapache/mycat-server#readme))
- [Distributed Transaction Management](https://awesome-repositories.com/f/software-engineering-architecture/distributed-transaction-management.md) — Maintains data integrity across multiple databases in distributed environments using coordination protocols.

### Networking & Communication

- [Protocol Translation](https://awesome-repositories.com/f/networking-communication/proxy-protocols/protocol-translation.md) — Translates a single client database protocol into various backend dialects to route traffic across distributed nodes.

### System Administration & Monitoring

- [Master Node Health Monitors](https://awesome-repositories.com/f/system-administration-monitoring/health-monitoring/instance-health-monitors/microservices-health-monitoring/master-node-health-monitors.md) — Tracks node availability via heartbeats to trigger automatic failover and maintain continuous service access. ([source](https://github.com/mycatapache/mycat-server#readme))
