| 语言 | 格式 | 评分 |
|---|---|---|
中文(简体) | .pdf | 3 |
| 摘要 | ||
文档介绍了小米用Go构建高性能数据库中间件Gaea的实践。Go于14年引入小米,最初用于日志收集,后开发大秒系统,现已广泛应用于商城、有品、金融、IoT、电视、云平台等部门,涉及中间件、微服务体系、云计算、运维平台、业务系统等。基于koala的微服务有数百个,商城后端系统包括订单、活动等核心系统均使用Go。Gaea背景源于内部mycat黑盒使用、连接超时、Load过高、内存溢出等问题,以及手工配置易出错、多个代理缺乏平台型方案。选择Go的原因包括并发友好、开发效率高、工具丰富、有kingshard/vitess/tidb等优秀项目参考、团队Go经验丰富。技术点包括配置热加载和动静分离。成果方面,18年11月上线2套集群、16个非分片业务、2个分片业务,QPS提升25%,并发优秀不再被短连接打爆,实现服务平台化,采用prometheus+grafana监控。 | ||
| AI总结 | ||
小米公司自2014年起引入Go语言,最初用于解决日志收集问题,随后逐步扩展到商城、有品、金融、IoT、电视、云平台等多个部门。目前,基于koala框架的微服务已达数百个,商城的核心后端系统(如订单、活动等)均采用Go开发。
Gaea是小米开发的数据库中间件,其背景源于内部使用mycat时遇到的黑盒问题、连接超时、负载过高、内存溢出,以及手工配置易出错、难管理、缺乏平台型方案等历史包袱。
选择Go开发Gaea的原因包括:并发友好(每个连接对应一个goroutine)、开发效率高、工具丰富,以及参考了kingshard、vitess、tidb等优秀项目,团队Go经验丰富。
Gaea的关键技术点包括:配置热加载(实现动静分离,将端口、etcd信息、日志、会话参数等静态配置与实例信息、分库分表规则、用户信息、读写分离、连接池等动态配置分离)、使用atomic.Value实现配置的原子加载与重载。
成果方面,Gaea于2018年11月上线,部署2套集群,支撑16个非分片业务和2个分片业务。QPS提升25%,并发性能优秀,不再被短连接打爆。实现了服务平台化,业务流程为业务申请、DBA分配、租户生效,并使用prometheus+grafana进行监控。 | ||
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
20 页请下载阅读 -
文档评分














2.6 用Go构建高性能数据库中间件- 徐成选
新一代分布式高性能图数据库的构建 - 沈游人