日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
58速運(yùn)“里程計(jì)算”優(yōu)化與演進(jìn)

58速運(yùn)貨物運(yùn)輸,滴滴快遞網(wǎng)約車,司機(jī)端都是按照行駛公里數(shù)收費(fèi)的,所以“里程”的準(zhǔn)確性,是這類業(yè)務(wù)的一個(gè)核心難題,“里程計(jì)算”方案演進(jìn),以及其中優(yōu)化思想,是本文要討論的問題。

一、直接調(diào)用地圖API

這是最容易想到的方法,最省事,但司機(jī)往往不是按照預(yù)定的路線行駛的,很有可能因?yàn)槎萝嚒⒌缆贩忾]等改變路線,所以直接調(diào)用地圖API,一次性計(jì)算出一個(gè)預(yù)估值,不太靠譜

優(yōu)化方案:根據(jù)實(shí)際路線計(jì)算里程

二、司機(jī)APP實(shí)時(shí)計(jì)算增量里程,服務(wù)端存儲(chǔ)總里程

過(guò)程如下:

(1)貨車位置不停的在改變,司機(jī)APP每隔一段時(shí)間(例如1s)記錄一次GPS,即打點(diǎn)

(2)實(shí)時(shí)計(jì)算相鄰兩點(diǎn)的距離,上報(bào)服務(wù)端

(3)服務(wù)端存儲(chǔ)總里程

潛在問題:GPS可能不準(zhǔn)確,偶爾會(huì)有噪點(diǎn),一旦有噪點(diǎn),相鄰兩點(diǎn)的距離會(huì)很遠(yuǎn),導(dǎo)致最終總里程可能比實(shí)際里程遠(yuǎn)

優(yōu)化方案:不能實(shí)時(shí)計(jì)算增量,而應(yīng)該先打點(diǎn),最終統(tǒng)一計(jì)算,這樣才有機(jī)會(huì)去除噪點(diǎn)

三、打點(diǎn)上報(bào)服務(wù)端,服務(wù)端統(tǒng)一計(jì)算里程

過(guò)程如下:

(1)貨車位置不停的在改變,司機(jī)APP每秒打一個(gè)點(diǎn),上報(bào)服務(wù)端

(2)服務(wù)端將打點(diǎn)落地,記錄數(shù)據(jù)庫(kù)

(3)到達(dá)目的地后,服務(wù)端對(duì)于所有點(diǎn)進(jìn)行統(tǒng)一處理,一次性計(jì)算里程,可以去除噪點(diǎn)

潛在問題:假設(shè)每單平均貨運(yùn)時(shí)長(zhǎng)1小時(shí),即每單要打3600個(gè)點(diǎn),58速運(yùn)每天100w訂單,即總共要打36億個(gè)點(diǎn),每個(gè)點(diǎn)對(duì)應(yīng)數(shù)據(jù)庫(kù)一個(gè)寫請(qǐng)求,則數(shù)據(jù)庫(kù)的寫壓力大概在每秒4w次,扛不住

優(yōu)化方案:批量寫是一種常見的降低數(shù)據(jù)庫(kù)壓力的方案

四、客戶端實(shí)時(shí)打點(diǎn),壓縮后批量上傳

過(guò)程如下:

(1)司機(jī)APP每秒在本地打點(diǎn),每隔一段時(shí)間(例如20s),壓縮,上報(bào)服務(wù)端,服務(wù)端壓力從4w降低到2k

(2)服務(wù)端解壓,批量寫入隊(duì)列

(3)隊(duì)列中的點(diǎn),每隔一段時(shí)間(例如2s)再寫入數(shù)據(jù)庫(kù)

優(yōu)化成果:大大降低了數(shù)據(jù)庫(kù)壓力(由于存儲(chǔ)量較大,實(shí)際優(yōu)化的過(guò)程中,使用Hbase進(jìn)行了優(yōu)化存儲(chǔ))

其他問題:數(shù)據(jù)庫(kù)壓力降下來(lái)了,但到達(dá)目的地后,一個(gè)訂單打的所有點(diǎn)計(jì)算里程,成本較高,如何減少計(jì)算量

優(yōu)化方案:去除無(wú)效點(diǎn)

五、打點(diǎn)過(guò)濾,提高效率

什么樣的打點(diǎn)是無(wú)效點(diǎn),需要去除呢?

(1)噪點(diǎn)原則:連續(xù)打點(diǎn),偏移量較大的噪點(diǎn),需要去除

(2)同點(diǎn)原則:相同位置的點(diǎn)可以去除,因?yàn)橐苿?dòng)路徑為0

(3)速度原則:行駛速度超過(guò)合理范圍的點(diǎn),需要去除

(4)角度原則:理論上訂單軌跡是平滑有序的,如果角度反復(fù)折回,可以視為無(wú)效點(diǎn)

潛在問題:如果司機(jī)APP有斷網(wǎng)或者信號(hào)不好,可能會(huì)漏點(diǎn),導(dǎo)致計(jì)算出的總距離小于實(shí)際距離,給司機(jī)帶來(lái)?yè)p失

優(yōu)化方案:補(bǔ)點(diǎn)

六、事后補(bǔ)點(diǎn),數(shù)據(jù)修正,計(jì)算里程

如何進(jìn)行補(bǔ)點(diǎn),如何進(jìn)行數(shù)據(jù)修正呢?

(1)補(bǔ)點(diǎn):車輛行駛過(guò)程中,如果有中斷路線,采用“地圖路徑規(guī)劃”的方式補(bǔ)點(diǎn)

(2)修正:采用卡爾曼濾波算法,對(duì)軌跡進(jìn)行整形

(3)計(jì)算里程:按照點(diǎn)到點(diǎn)的距離,進(jìn)行累加

總結(jié)

“里程計(jì)算”的優(yōu)化歷程:

  • 直接調(diào)用地圖API
  • 司機(jī)APP實(shí)時(shí)計(jì)算增量里程,服務(wù)端存儲(chǔ)總里程
  • 打點(diǎn)上報(bào)服務(wù)端,服務(wù)端統(tǒng)一計(jì)算里程
  • 客戶端實(shí)時(shí)打點(diǎn),壓縮后批量上傳
  • 打點(diǎn)過(guò)濾,提高效率
  • 事后補(bǔ)點(diǎn),數(shù)據(jù)修正,計(jì)算里程

“里程計(jì)算”業(yè)務(wù)并不是所有公司都會(huì)涉及到,但其中的優(yōu)化思路,很多還是可以借鑒的:

  • 單次與統(tǒng)籌:客戶端單次記錄與計(jì)算是不靠譜的,應(yīng)該由服務(wù)端來(lái)實(shí)施,綜合所有數(shù)據(jù),去除噪點(diǎn)
  • 單次與批量:?jiǎn)未尾僮?,壓力較大,不好壓縮;批量操作能大大降低壓力,并且壓縮比高
  • 全量與過(guò)濾:全量計(jì)算成本較高,過(guò)濾掉無(wú)效數(shù)據(jù),能夠降低計(jì)算量,提高精確性
  • 補(bǔ)充與修正:對(duì)于少量缺少的數(shù)據(jù),可以預(yù)測(cè)補(bǔ)充,平滑修正

【本文為專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文


分享名稱:58速運(yùn)“里程計(jì)算”優(yōu)化與演進(jìn)
網(wǎng)頁(yè)網(wǎng)址:http://www.5511xx.com/article/cohhcgd.html