| 语言 | 格式 | 评分 |
|---|---|---|
中文(简体) | .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 页请下载阅读 -
文档评分














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