此篇记录基于Map LBS的一些服务设计。
Uber
Uber作为世界上最大的的互联网在线约车服务商,曾经利用Golang来构建基于地理围栏的高性能查询服务。
提高服务性能
一般来说,提高服务的性能有两个方法:
- 通过横向扩展,增加服务的硬件资源。硬件的扩展还取决于服务的架构支持,不是所有架构都是可以通过横向增加硬件来提高性能。
- 还有一个就是通过优化或者重构提高服务的软件性能。Uber采取的方法就是使用Golang语言进行重构服务。
地理围栏
- 地理围栏是指地球表面上人类定义的地理区域(或几何学上的多边形)。
- 具体表现为向用户显示在给定位置提供哪些服务,定义具有特定要求的区域(例如机场)以及对许多人同时打车的地点实施动态定价等。
- 地理围栏查找需要占用大量CPU的多边形点算法。