{"repo":"XiaoMi/Gaea","free":true,"listed":false,"github":"https://github.com/XiaoMi/Gaea","clone":"git clone https://github.com/XiaoMi/Gaea.git","description":"Gaea is a mysql proxy, it's developed by xiaomi b2c-dev team.","language":"Go","stars":2765,"topics":["middleware","database"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"简介 Gaea是小米集团自研的基于 MySQL 协议的数据库中间件，目前在国内和海外得到了广泛使用，具体包括手机、汽车、生态链、金融、互联网等多个业务。Gaea支持分库分表、sql路由、读写分离等基本特性，更多详细功能可以参照下面的功能列表。其中分库分表方案兼容了mycat和kingshard两个项目的路由方式。Gaea在设计、实现阶段参照了mycat、kingshard和vitess，并使用tidb parser作为内置的sql parser，在此表达诚挚感谢。为了方便使用和学习Gaea，我们也提供了详细的使用和设计文档，也欢迎大家多多参与。 功能列表 基础功能 - 多集群 - 多租户 - SQL透明转发 - 慢SQL指纹 - 错误SQL指纹 - 注解路由 - 慢日志 - 读写分离，从库负载均衡 - 自定义SQL拦截与过滤 - 连接池 - 配置热加载 - IP/IP段白名单 - 全局序列号 分库、分表功能 - 分库: 支持mycat分库方式 - 分表: 支持kingshard分表方式 - 聚合函数: 支持max、min、sum、count、group by、order by等 - join: 支持分片表和全局表的join、支持多个分片表但是路由规则相同的join 架构图 集群部署图 如上图所示, 部署一套gaea-cc和etcd可用来管理多套gaea集群, 负责集群内namespace配置的增删改查. gaea-cc的HTTP接口文档 安装使用 - 快速入门 - 配置说明 - 监控配置说明 - 全局序列号配置说明 - 基本概念 - SQL兼容性 - FAQ 设计与实现 - 整体架构 - 多租户的设计与实现 - gaea配置热加载设计与实现 - gaea proxy后端连接池的设计与实现 - prepare的设计与实现 性能测试 - gaea 2.3.7 Roadmap - [x] 支持配置加密存储，开关 - [ ] 支持执行计划缓存 - [ ] 支持事务追踪 - [ ] 支持二级索引 - [ ] 支持分布式事务 - [ ] 支持平滑的扩容、缩容 - [ ] 后端连接池优化 (按照请求时间排队) 自有开发模块 - backend - cmd - log - models - proxy/plan - proxy/router(kingshard路由方式源自kingshard项目本身) - proxy/sequence - server 外部模块 - mysql(google vitess、tidb、kingshard都有引入) - parser(tidb) - stats(google vitess，打点统计) - util(混合) 社区 gitter 飞书","default_branch":null,"files":null,"tree":[],"storefront":"/r/XiaoMi","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/XiaoMi/Gaea/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}