这是我2015年做的一个功能
1. 功能模块
1.1 滴滴前端-获取后端数据&展示
1.2 滴滴后端-公共服务:根据前端传入的经纬度返回当前定位的二级城市
1.3 高德地图:提供poi服务,用户获取经纬度对应的城市信息
2. 我负责的部分:滴滴后端-公共服务。技术栈:java、dubbo、zk、http
3. 难点
3.1 高德给的接口一直不太稳定,平均rt有100多毫秒,超时时有发生
3.2 qpm从200突然增长到20000,扛不住压力:这个接口一开始只服务于滴滴代驾,后来因为app功能上的调整,滴滴首页打开后就会访问这个接口,导致压力过大。
4. 难点解决
总共有过2个解决思路
4.1 首先是早期提过的在机房内部署本地高德服务,但是一直无法推动
4.2 在即将奔溃的时候,我直接去拉取到了高德的地理围栏数据,其中有各个城市的边界线坐标集合。我将这些数据放到程序的本地缓存中,然后使用多边形算法,最终可以在10微妙内完成城市定位
点击空白处退出提示
评论