搜索

pdf文档 1.2 Go在Grab地理服务中的实践

4.26 MB 78 页 0 下载 4 浏览 0 评论 0 收藏
所属分类: 后端开发 / Go
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档介绍了Go语言在Grab地理服务中的实践。Grab是一家提供出行服务的公司,其核心业务包括派单流程和地理服务系统。文档详细阐述了Nearby这一核心地理服务系统的演进历程,并解释了选择Go语言的原因:Go语言简洁易上手,适合处理大量几何运算、大流量网络吞吐以及CPU-Bound和I/O-Bound场景。在压测与调优方面,文档提到了使用GoReplay进行基于生产数据的测试,包括流量重放、格式易读和无侵入的特点,并进行了分布式并行压测。文档还指出了当前系统的改进方向,如Shard分裂需要重启、空间索引不是最优以及如何支持多引擎如S2。
AI总结
Grab是东南亚的一家出行和外卖公司。其核心业务涉及一个典型的派单流程,其中“Nearby”是一个关键的地理服务系统,用于查找附近的司机或资源。 该系统的演进历程包括使用Go语言进行重构。选择Go的原因是其简洁易上手,并且能很好地应对业务场景中的大量几何运算、高网络吞吐以及CPU和I/O密集型任务。 在压测与调优方面,团队采用了基于生产数据的测试方法,使用了GoReplay工具进行无侵入的流量重放。他们还实施了分布式并行压测,并达到了约10毫秒的读取性能,成功支撑了业务的高速增长。 文档最后指出了系统未来可优化的方向,包括:实现Shard分裂时不重启的平滑操作,以及优化空间索引(例如引入S2引擎),以解决当前引擎在最坏情况下需要遍历整个Shard空间的问题。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 66 页请下载阅读 -
文档评分
请文明评论,理性发言.