github.com/XiaoMi/Gaea@v1.2.5/README.md (about) 1 [![LICENSE](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://github.com/XiaoMi/Gaea/blob/master/LICENSE) 2 [![Build Status](https://travis-ci.org/XiaoMi/Gaea.svg?branch=master)](https://travis-ci.org/XiaoMi/Gaea) 3 [![Go Report Card](https://goreportcard.com/badge/github.com/XiaoMi/Gaea)](https://goreportcard.com/report/github.com/XiaoMi/Gaea) 4 5 ## 简介 6 7 Gaea是小米中国区电商研发部研发的基于mysql协议的数据库中间件,目前在小米商城大陆和海外得到广泛使用,包括订单、社区、活动等多个业务。Gaea支持分库分表、sql路由、读写分离等基本特性,更多详细功能可以参照下面的功能列表。其中分库分表方案兼容了mycat和kingshard两个项目的路由方式。Gaea在设计、实现阶段参照了mycat、kingshard和vitess,并使用tidb parser作为内置的sql parser,在此表达诚挚感谢。为了方便使用和学习Gaea,我们也提供了详细的使用和设计文档,也欢迎大家多多参与。 8 9 ## 功能列表 10 11 #### 基础功能 12 13 - 多集群 14 - 多租户 15 - SQL透明转发 16 - 慢SQL指纹 17 - 错误SQL指纹 18 - 注解路由 19 - 慢日志 20 - 读写分离,从库负载均衡 21 - 自定义SQL拦截与过滤 22 - 连接池 23 - 配置热加载 24 - IP/IP段白名单 25 - 全局序列号 26 27 #### 分库、分表功能 28 29 - 分库: 支持mycat分库方式 30 - 分表: 支持kingshard分表方式 31 - 聚合函数: 支持max、min、sum、count、group by、order by等 32 - join: 支持分片表和全局表的join、支持多个分片表但是路由规则相同的join 33 34 ## 架构图 35 36 ![gaea架构图](docs/assets/architecture.png) 37 38 ## 集群部署图 39 40 ![gaea集群部署图](docs/assets/deployment.png) 41 42 如上图所示, 部署一套gaea-cc和etcd可用来管理多套gaea集群, 负责集群内namespace配置的增删改查. 43 [gaea-cc的HTTP接口文档](docs/gaea-cc.md) 44 45 ## 安装使用 46 47 - [快速入门](docs/quickstart.md) 48 - [配置说明](docs/configuration.md) 49 - [监控配置说明](docs/grafana.md) 50 - [全局序列号配置说明](docs/sequence-id.md) 51 - [基本概念](docs/concepts.md) 52 - [SQL兼容性](docs/compatibility.md) 53 - [FAQ](docs/faq.md) 54 55 ## 设计与实现 56 57 - [整体架构](docs/architecture.md) 58 - [多租户的设计与实现](docs/multi-tenant.md) 59 - [gaea配置热加载设计与实现](docs/config-reloading.md) 60 - [gaea proxy后端连接池的设计与实现](docs/connection-pool.md) 61 - [prepare的设计与实现](docs/prepare.md) 62 63 ## Roadmap 64 65 - [x] 支持配置加密存储,开关 66 - [ ] 支持执行计划缓存 67 - [ ] 支持事务追踪 68 - [ ] 支持二级索引 69 - [ ] 支持分布式事务 70 - [ ] 支持平滑的扩容、缩容 71 - [ ] 后端连接池优化 (按照请求时间排队) 72 73 ## 自有开发模块 74 75 - backend 76 - cmd 77 - log 78 - models 79 - proxy/plan 80 - proxy/router(kingshard路由方式源自kingshard项目本身) 81 - proxy/sequence 82 - server 83 84 ## 外部模块 85 86 - mysql(google vitess、tidb、kingshard都有引入) 87 - parser(tidb) 88 - stats(google vitess,打点统计) 89 - util(混合) 90 91 ## 社区 92 93 ### gitter 94 [![Gitter](https://badges.gitter.im/xiaomi-b2c/Gaea.svg)](https://gitter.im/xiaomi-b2c/Gaea?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) 95 96 ### 钉钉 97 ![钉钉](docs/assets/gaea_dingtalk.png)