Gaea简介

Gaea是小米商城/系统组研发的基于mysql协议的数据库中间件,目前在小米商城大陆和海外得到广泛使用,包括订单、社区、活动等多个业务。Gaea支持分库分表、sql路由、读写分离等基本特性,更多详细功能可以参照下面的功能列表。其中分库分表方案兼容了mycat和kingshard两个项目的路由方式。Gaea在设计、实现阶段参照了mycat、kingshard和vitess,并使用tidb parser作为内置的sql parser,在此表达诚挚感谢。为了方便使用和学习Gaea,我们也提供了详细的使用和设计文档,也欢迎大家多多参与。

Gaea功能列表

基础功能

多租户

SQL透明转发

慢SQL指纹

错误SQL指纹

注解路由

慢日志

读写分离,从库负载均衡

自定义SQL拦截与过滤

连接池

配置热加载

IP/IP段白名单

全局序列号

分库、分表功能

分库: 支持mycat分库方式

分表: 支持kingshard分表方式

聚合函数: 支持max、min、sum、count、group by、order by等

join: 支持分片表和全局表的join、支持多个分片表但是路由规则相同的join

Gaea架构

模块划分

gaea包含四个模块,分别是gaea-proxy、gaea-cc、gaea-agent、gaea-web。gaea-proxy为在线代理,负责承接sql流量,gaea-cc是中控模块,负责gaea-proxy的配置管理及一些后台任务,gaea-agent部署在mysql所在的机器上,负责实例创建、管理、回收等工作,gaea-web是gaea的一个管理界面,使gaea整体使用更加方便。

架构图

Gaea安装使用

编译安装

gaea基于go开发,基于glide进行版本管理,并依赖goyacc、gofmt等工具。

首先安装依赖包 glide install

编译二进制包 make

执行

编译之后在bin目录会有gaea、gaea-cc两个可执行文件。etc目录下为配置文件,如果想快速体验gaea功能,可以采用file配置方式,然后在etc/file/namespace下添加对应租户的json文件,该目录下目前有两个示例,可以直接修改使用。 ./bin/gaea --help显示如下,其中-config是指定配置文件位置,默认为./etc/gaea.ini,具体配置见配置说明。

Usage of ./bin/gaea:

-config string

gaea config file (default "etc/gaea.ini")

1

2

3

Usageof./bin/gaea:

-configstring

gaeaconfigfile(default"etc/gaea.ini")

更多帮助看git仓库说明

mysql开源中间件_Gaea – 小米开源的MySQL数据库中间件相关推荐

  1. mysql fa连接池中间件_小米开源数据库中间件gaea

    简介 Gaea是小米商城/系统组研发的基于 mysql 协议的 数据库 中间件,目前在小米商城大陆和海外得到广泛使用,包括订单.社区.活动等多个业务.Gaea支持分库分表.sql路由.读写分离.连接池 ...

  2. 小米9开源linux内核,小米开源 Redmi Note 8 Pro 和 Note 9 Pro 系列的内核源码

    小米开源了基于 Android Q 的 Redmi Note 8 Pro(代号 begonia) 以及 Redmi Note 9 Pro/Note 9 Pro Max(代号 curtana) 的内核源 ...

  3. mysql为什么需要中间件_究竟为什么要引入数据库中间件

    不少朋友经常会问我以下问题: 58到家有没有使用数据库中间件 使用了什么数据库中间件,是自研,还是第三方 怎么实现的,是基于客户端的中间件,还是基于服务端的中间件 使用中间件后,join/子查询/集函 ...

  4. Linux+MySQL+MyCat实现分库分表,通过MyCat数据库中间件实现分库分表配置实战

    目录 前言 Linux+MySQL+MyCat实现读写分离,主从同步的解决方案 一.Linux下MySQL数据库服务的安装与部署 二.下载Linux MyCat 三.上传Linux服务器,并解压 四. ...

  5. 真·“拜师学艺”?2021中科院开源之夏,开源大牛1V1万元奖金只等你来!

    "开源软件供应链点亮计划 - 暑期 2021"是由中国科学院软件研究所 与 openEuler 社区共同举办的,面向高校学生的系列暑期开源项目开发活动.活动将联合各大开源社区,针对 ...

  6. 如何写一个数据库中间件以及需要准备的知识储备

    什么是数据库中间件 1.透明化使用方无感知,或者尽量少感知.通过现有的接入端接入已有服务 2.增量服务不改变数据库本身功能的前提下,提供额外的功能与服务一个原则不破坏原有逻辑,并且让用户基于之前的经验 ...

  7. Mycat数据库中间件(史上最详细)

    单机数据库瓶颈: 1.磁盘空间上限 2.服务器性能上限 3.单点故障 数据库性能瓶颈 : 1.单表性能瓶颈 2.单库性能瓶颈 3.读写性能瓶颈 解决方案1:读写分离 1.MySQL读写分离能提高系统性 ...

  8. 分布式数据库实战第六节 数据库中间件的研究

    21 知识串讲:如何取得性能和可扩展性的平衡? 这一讲我们来总结一下模块三.经过这个模块的学习,相信你已经对分布式数据库中分布式系统部分常见的技术有了深刻的理解.这是一节知识串讲的课,目的是帮助你将所 ...

  9. 谈谈“数据库中间件”生态与发展

    中间件,作为基础软件之一,在IT基础设施中扮演中重要的角色.本文对中间件.特别是数据库中间件的现状与发展做下简单分析. 1. 中间件概述 1).中间件 中间件(Middleware),是指处于操作系统 ...

最新文章

  1. 【转】Java MySQL数据类型对照
  2. struts:file 提交给action后获取文件信息
  3. (进阶篇)Redis6.2.0 集群 哨兵模式_搭建_01
  4. python网络协议编辑器_python模块:网络协议和支持
  5. IntelliJ IDEA 2017.1 EAP与异步堆栈跟踪调试器扩展
  6. 神武显示未能成功连接服务器,神武:疑难问题解答,总有你要的答案
  7. [蓝桥杯]试题 基础练习 龟兔赛跑预测
  8. boost python错误_Ubuntu-链接boost.python-致命错误:找不到pyconfig
  9. Eclipse、Tomcat安装配置及部署教程
  10. 学习总结:即时通讯项目里面的语音处理-文件模式录音
  11. 车载导航升级凯立德的步骤
  12. FID图像质量评估指标
  13. 一个医院为何要架设数字网络时钟系统(电子时钟系统)
  14. html 按钮控制图片,html怎么设置图片按钮
  15. 回顾 2021,展望 2022
  16. 面试系列-3 限流场景实践
  17. 用Sympy计算高次方程的判别式
  18. html实训报告致谢,毕业论文致谢信(精选10篇)
  19. 政府赠予固定资产或者捐赠资金的会计分录
  20. WebView部分源码概览

热门文章

  1. 纽曼 移动硬盘 拆壳方法
  2. VS2019 安装MFC
  3. 315护眼灯测试哪一款合格?盘点315合格儿童护眼灯品牌
  4. EagleGet下载|EagleGet(猎鹰高速下载器) v2.1.5.10免费中文便携版下载
  5. 根治多普达 838 屏幕飘移
  6. 【java】1000问2SpringBoot项目打成war和jar有什么区别
  7. 03 数据分析之分布分析
  8. PHP在线考试测试系统源码下载
  9. CMake学习(五) —— 打印信息
  10. mcgs昆仑通泰触摸屏和三菱变频器modbus RTU通讯案例