搜索

pdf文档 2.6 用Go构建高性能数据库中间件- 徐成选

13.83 MB 32 页 0 下载 2 浏览 0 评论 0 收藏
所属分类: 后端开发 / Go
语言 格式 评分
中文(简体)
.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 页请下载阅读 -
文档评分
请文明评论,理性发言.