XiaoMi Gaea

数据库中间件
授权协议 Apache-2.0
开发语言 Google Go
所属分类 数据库相关、 数据库调整和优化
软件类型 开源软件
地区 国产
投 递 者 金子平
操作系统 跨平台
开源组织 小米
适用人群 未知
 软件概览

Gaea 是小米商城/系统组研发的基于 mysql 协议的数据库中间件,目前在小米商城大陆和海外得到广泛使用,包括订单、社区、活动等多个业务。Gaea 支持分库分表、sql 路由、读写分离等基本特性,更多详细功能可以参照下面的功能列表。其中分库分表方案兼容了 mycat 和 kingshard 两个项目的路由方式。

功能列表

基础功能

  • 多租户
  • SQL 透明转发
  • 慢 SQL 指纹
  • 错误 SQL 指纹
  • 注解路由
  • 慢日志
  • 读写分离,从库负载均衡
  • 自定义 SQL 拦截与过滤
  • 连接池
  • 配置热加载
  • IP/IP 段白名单
  • 全局序列号

分库、分表功能

  • 分库: 支持 mycat 分库方式
  • 分表: 支持 kingshard 分表方式
  • 聚合函数: 支持 max、min、sum、count、group by、order by 等
  • join: 支持分片表和全局表的 join、支持多个分片表但是路由规则相同的 join

架构图

gaea架构图

 相关资料
  • 错误:查询有问题:[SQLITE_ERROR]SQL错误或缺少数据库(没有这样的表:任务) 显示了这个错误,我怎么可能修复它? 我正在学习这个教程

  • 并且我发现了基于数据库版本4的可能场景的迁移varargs。 我的问题是,假设我使用的是db v1的Room,当我的应用程序到达db v10时,我将不得不编写多少迁移方法? 在sqlite中,我们在中获得已安装应用程序的当前db版本,我们只需通过开关大小写而不使用break语句,以便满足所有db升级。

  • 我是新来的和我试图我的得到一个从它。我试图这样做的它与这是id但问题是我不知道如何返回目标从。 这就是<代码>刀 这是Repository类

  • 问题内容: 我们正在多家商店中运行带有MySql后端的Java PoS(销售点)应用程序。我想保持商店中的数据库与主机服务器上的数据库同步。 商店中发生某些更改时,应在主机服务器上对其进行更新。我该如何实现? 问题答案: 复制不是很难创建。 这里有一些很好的教程: http://aciddrop.com/2008/01/10/step-by-step-how-to-setup-mysql-data

  • 我有一个现有的Android项目,在其中我创建了一个新的(offlineservicelibrary)(文件/new/new module/Android library)。在这个库中,我想创建一个房间数据库。 我遵循https://developer.android.com/training/data-storage/room并为我的数据库创建了Entity(OfflineData)和DAO(O

  • 本文向大家介绍数据仓库和运营数据库之间的区别,包括了数据仓库和运营数据库之间的区别的使用技巧和注意事项,需要的朋友参考一下 数据仓库是用于结构化,经过过滤的数据的存储库,该数据已针对特定目的进行了处理。数据软件从多个来源收集数据,并使用ETL流程转换数据,然后将其加载到数据仓库中以用于业务目的。 运营数据库是那些数据经常更改的数据库。它们主要设计用于大量数据交易。它们是数据仓库的源数据库,用于维护

  • 我尝试在Android房间中附加数据库,如下所示:如何从Android房间中的多个数据库中进行选择(如何附加数据库),但在构建项目时出现错误:错误:查询有问题:[SQLITE\u错误]SQL错误或缺少数据库(没有这样的表:database.table)错误 当我添加@SkipQuery验证时,错误发生了变化:错误:不确定如何将游标转换为此方法的返回类型。 当我从查询中删除“myDatabase.”

  • 我有一个包含数百个节点对象的数据库,所有节点对象的名称中都带有空格。我有时不得不使用我的笔记本电脑上的控制台进入这些键中的一个来编辑从属值。 自从我上次尝试这样做以来,由于某种原因,而不是键在它自己的页面中作为“某个节点”打开,其下方是适当的键/值,可编辑,它显示为“某个节点”,这导致它无法找到下面的值。 如果我不是“单击”键来编辑它,而是简单地展开键节点,则从属键/值存在,因此数据存在。我的应用