mysql开源中间件_Gaea – 小米开源的MySQL数据库中间件

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整体使用更加方便。

架构图

3ff70f8fcdb8e6d93576981ddae7ca6a.png

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仓库说明

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值