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)