編者按:即時(shí)物流看似簡(jiǎn)單,表面看僅僅是物流最原始的配送模式,即:點(diǎn)對(duì)點(diǎn)配送。但是,在互聯(lián)網(wǎng)成為基礎(chǔ)設(shè)施的今天,大數(shù)據(jù)、云計(jì)算、物聯(lián)網(wǎng)等先進(jìn)技術(shù)都在即時(shí)物流配送體系中得到應(yīng)用,數(shù)據(jù)驅(qū)動(dòng),智能調(diào)撥已經(jīng)成為即時(shí)物流的核心競(jìng)爭(zhēng)力。我在一篇:王繼祥:即時(shí)配送是否會(huì)推動(dòng)現(xiàn)代物流與供應(yīng)鏈體系變革?中提出:如果即時(shí)物流與上游的傳統(tǒng)物流體系和智慧供應(yīng)鏈對(duì)接,將打通傳統(tǒng)物流配送最難的末端網(wǎng)絡(luò),推動(dòng)智慧供應(yīng)鏈向智慧供應(yīng)網(wǎng)變革,即時(shí)物流的小趨勢(shì)將推動(dòng)智慧物流大趨勢(shì)發(fā)展。美團(tuán)即時(shí)物流系統(tǒng)在國(guó)內(nèi)居于領(lǐng)先地位,美團(tuán)的即時(shí)物流的大腦是如何建設(shè)的?今天向大家推薦一篇美團(tuán)資深技術(shù)專(zhuān)家宋斌的文章,供大家參考。(王繼祥)
團(tuán)外賣(mài)的即時(shí)物流分布式高并發(fā)系統(tǒng)是如何建設(shè)的?
美團(tuán)外賣(mài)已經(jīng)發(fā)展了五年,即時(shí)物流探索也經(jīng)歷了 3 年多的時(shí)間,業(yè)務(wù)從零孵化到初具規(guī)模,在整個(gè)過(guò)程中積累了一些分布式高并發(fā)系統(tǒng)的建設(shè)經(jīng)驗(yàn)。最主要的收獲包括兩點(diǎn):
即時(shí)物流業(yè)務(wù)對(duì)故障和高延遲的容忍度極低,在業(yè)務(wù)復(fù)雜度提升的同時(shí)也要求系統(tǒng)具備分布式、可擴(kuò)展、可容災(zāi)的能力。即時(shí)物流系統(tǒng)階段性的逐步實(shí)施分布式系統(tǒng)的架構(gòu)升級(jí),最終解決了系統(tǒng)宕機(jī)的風(fēng)險(xiǎn)。
圍繞成本、效率、體驗(yàn)核心三要素,即時(shí)物流體系大量結(jié)合 AI 技術(shù),從定價(jià)、ETA、調(diào)度、運(yùn)力規(guī)劃、運(yùn)力干預(yù)、補(bǔ)貼、核算、語(yǔ)音交互、LBS 挖掘、業(yè)務(wù)運(yùn)維、指標(biāo)監(jiān)控等方面,業(yè)務(wù)突破結(jié)合架構(gòu)升級(jí),達(dá)到促規(guī)模、保體驗(yàn)、降成本的效果。
本文主要介紹在美團(tuán)即時(shí)物流分布式系統(tǒng)架構(gòu)逐層演變的進(jìn)展中,遇到的技術(shù)障礙和挑戰(zhàn):
訂單、騎手規(guī)模大,供需匹配過(guò)程的超大規(guī)模計(jì)算問(wèn)題。
遇到節(jié)假日或者惡劣天氣,訂單聚集效應(yīng),流量高峰是平常的十幾倍。
物流履約是線上連接線下的關(guān)鍵環(huán)節(jié),故障容忍度極低,不能宕機(jī),不能丟單,可用性要求極高。
數(shù)據(jù)實(shí)時(shí)性、準(zhǔn)確性要求高,對(duì)延遲、異常非常敏感。
美團(tuán)即時(shí)物流配送平臺(tái)主要圍繞三件事展開(kāi):一是面向用戶提供履約的 SLA,包括計(jì)算送達(dá)時(shí)間 ETA、配送費(fèi)定價(jià)等;二是在多目標(biāo)(成本、效率、體驗(yàn))優(yōu)化的背景下,匹配最合適的騎手;三是提供騎手完整履約過(guò)程中的輔助決策,包括智能語(yǔ)音、路徑推薦、到店提醒等。
在一系列服務(wù)背后,是美團(tuán)強(qiáng)大的技術(shù)體系的支持,并由此沉淀出的配送業(yè)務(wù)架構(gòu)體系,基于架構(gòu)構(gòu)建的平臺(tái)、算法、系統(tǒng)和服務(wù)。龐大的物流系統(tǒng)背后離不開(kāi)分布式系統(tǒng)架構(gòu)的支撐,而且這個(gè)架構(gòu)更要保證高可用和高并發(fā)。
分布式架構(gòu),是相對(duì)于集中式架構(gòu)而言的一種架構(gòu)體系。分布式架構(gòu)適用 CAP 理論(Consistency 一致性,Availability 可用性,Partition Tolerance 分區(qū)容忍性)。在分布式架構(gòu)中,一個(gè)服務(wù)部署在多個(gè)對(duì)等節(jié)點(diǎn)中,節(jié)點(diǎn)之間通過(guò)網(wǎng)絡(luò)進(jìn)行通信,多個(gè)節(jié)點(diǎn)共同組成服務(wù)集群來(lái)提供高可用、一致性的服務(wù)。
早期,美團(tuán)按照業(yè)務(wù)領(lǐng)域劃分成多個(gè)垂直服務(wù)架構(gòu);隨著業(yè)務(wù)的發(fā)展,從可用性的角度考慮做了分層服務(wù)架構(gòu)。后來(lái),業(yè)務(wù)發(fā)展越發(fā)復(fù)雜,從運(yùn)維、質(zhì)量等多個(gè)角度考量后,逐步演進(jìn)到微服務(wù)架構(gòu)。這里主要遵循了兩個(gè)原則:不宜過(guò)早的進(jìn)入到微服務(wù)架構(gòu)的設(shè)計(jì)中,好的架構(gòu)是演進(jìn)出來(lái)的不是提前設(shè)計(jì)出來(lái)的。
上圖是比較典型的美團(tuán)技術(shù)體系下的分布式系統(tǒng)結(jié)構(gòu):依托了美團(tuán)公共組件和服務(wù),完成了分區(qū)擴(kuò)容、容災(zāi)和監(jiān)控的能力。前端流量會(huì)通過(guò) HLB 來(lái)分發(fā)和負(fù)載均衡;在分區(qū)內(nèi),服務(wù)與服務(wù)會(huì)通過(guò) OCTO 進(jìn)行通信,提供服務(wù)注冊(cè)、自動(dòng)發(fā)現(xiàn)、負(fù)載均衡、容錯(cuò)、灰度發(fā)布等等服務(wù)。當(dāng)然也可以通過(guò)消息隊(duì)列進(jìn)行通信,例如 Kafka、RabbitMQ。在存儲(chǔ)層使用 Zebra 來(lái)訪問(wèn)分布式數(shù)據(jù)庫(kù)進(jìn)行讀寫(xiě)操作。利用 CAT(美團(tuán)開(kāi)源的分布式監(jiān)控系統(tǒng))進(jìn)行分布式業(yè)務(wù)及系統(tǒng)日志的采集、上報(bào)和監(jiān)控。分布式緩存使用 Squirrel+Cellar 的組合。分布式任務(wù)調(diào)度則是通過(guò) Crane。
在實(shí)踐過(guò)程還要解決幾個(gè)問(wèn)題,比較典型的是集群的擴(kuò)展性,有狀態(tài)的集群可擴(kuò)展性相對(duì)較差,無(wú)法快速擴(kuò)容機(jī)器,無(wú)法緩解流量壓力。同時(shí),也會(huì)出現(xiàn)節(jié)點(diǎn)熱點(diǎn)的問(wèn)題,包括資源不均勻、CPU 使用不均勻等等。
首先,配送后臺(tái)技術(shù)團(tuán)隊(duì)通過(guò)架構(gòu)升級(jí),將有狀態(tài)節(jié)點(diǎn)變成無(wú)狀態(tài)節(jié)點(diǎn),通過(guò)并行計(jì)算的能力,讓小的業(yè)務(wù)節(jié)點(diǎn)去分擔(dān)計(jì)算壓力,以此實(shí)現(xiàn)快速擴(kuò)容。
第二是要解決一致性的問(wèn)題,對(duì)于既要寫(xiě) DB 也要寫(xiě)緩存的場(chǎng)景,業(yè)務(wù)寫(xiě)緩存無(wú)法保障數(shù)據(jù)一致性,美團(tuán)內(nèi)部主要通過(guò) Databus 來(lái)解決,Databus 是一個(gè)高可用、低延時(shí)、高并發(fā)、保證數(shù)據(jù)一致性的數(shù)據(jù)庫(kù)變更實(shí)時(shí)傳輸系統(tǒng)。通過(guò) Databus 上游可以監(jiān)控業(yè)務(wù) Binlog 變更,通過(guò)管道將變更信息傳遞給 ES 和其他 DB,或者是其他 KV 系統(tǒng),利用 Databus 的高可用特性來(lái)保證數(shù)據(jù)最終是可以同步到其他系統(tǒng)中。
第三是我們一直在花精力解決的事情,就是保障集群高可用,主要從三個(gè)方面來(lái)入手,事前較多的是做全鏈路壓測(cè)評(píng),估峰值容量;周期性的集群健康性檢查;隨機(jī)故障演練(服務(wù)、機(jī)器、組件)。事中做異常報(bào)警(性能、業(yè)務(wù)指標(biāo)、可用性);快速的故障定位(單機(jī)故障、集群故障、IDC 故障、組件異常、服務(wù)異常);故障前后的系統(tǒng)變更收集。事后重點(diǎn)做系統(tǒng)回滾;擴(kuò)容、限流、熔斷、降級(jí);核武器兜底。
單 IDC 故障之后,入口服務(wù)做到故障識(shí)別,自動(dòng)流量切換;單 IDC 的快速擴(kuò)容,數(shù)據(jù)提前同步,服務(wù)提前部署,Ready 之后打開(kāi)入口流量;要求所有做數(shù)據(jù)同步、流量分發(fā)的服務(wù),都具備自動(dòng)故障檢測(cè)、故障服務(wù)自動(dòng)摘除;按照 IDC 為單位擴(kuò)縮容的能力。
美團(tuán) IDC 以分區(qū)為單位,存在資源滿排,分區(qū)無(wú)法擴(kuò)容。美團(tuán)的方案是多個(gè) IDC 組成虛擬中心,以中心為分區(qū)的單位;服務(wù)無(wú)差別的部署在中心內(nèi);中心容量不夠,直接增加新的 IDC 來(lái)擴(kuò)容容量。
相比多中心來(lái)說(shuō),單元化是進(jìn)行分區(qū)容災(zāi)和擴(kuò)容的更優(yōu)方案。關(guān)于流量路由,美團(tuán)主要是根據(jù)業(yè)務(wù)特點(diǎn),采用區(qū)域或城市進(jìn)行路由。數(shù)據(jù)同步上,異地會(huì)出現(xiàn)延遲狀況。SET 容災(zāi)上要保證同本地或異地 SET 出現(xiàn)問(wèn)題時(shí),可以快速把 SET 切換到其他 SET 上來(lái)承擔(dān)流量。
機(jī)器學(xué)習(xí)平臺(tái),是一站式線下到線上的模型訓(xùn)練和算法應(yīng)用平臺(tái)。之所以構(gòu)建這個(gè)平臺(tái),目的是要解決算法應(yīng)用場(chǎng)景多,重復(fù)造輪子的矛盾問(wèn)題,以及線上、線下數(shù)據(jù)質(zhì)量不一致。如果流程不明確不連貫,會(huì)出現(xiàn)迭代效率低,特征、模型的應(yīng)用上線部署出現(xiàn)數(shù)據(jù)質(zhì)量等障礙問(wèn)題。
JARVIS 是一個(gè)以穩(wěn)定性保障為目標(biāo)的智能化業(yè)務(wù)運(yùn)維 AIOps 平臺(tái)。主要用于處理系統(tǒng)故障時(shí)報(bào)警源很多,會(huì)有大量的重復(fù)報(bào)警,有效信息很容易被淹沒(méi)等各種問(wèn)題。此外,過(guò)往小規(guī)模分布式集群的運(yùn)維故障主要靠人和經(jīng)驗(yàn)來(lái)分析和定位,效率低下,處理速度慢,每次故障處理得到的預(yù)期不穩(wěn)定,在有效性和及時(shí)性方面無(wú)法保證。所以需要 AIOps 平臺(tái)來(lái)解決這些問(wèn)題。
經(jīng)過(guò)復(fù)盤(pán)和 Review 之后,我們發(fā)現(xiàn)未來(lái)的挑戰(zhàn)很大,微服務(wù)不再“微”了,業(yè)務(wù)復(fù)雜度提升之后,服務(wù)就會(huì)變得膨脹。其次,網(wǎng)狀結(jié)構(gòu)的服務(wù)集群,任何輕微的延遲,都可能導(dǎo)致的網(wǎng)絡(luò)放大效應(yīng)。另外復(fù)雜的服務(wù)拓?fù)洌绾巫龅焦收系目焖俣ㄎ缓吞幚?,這也是 AIOps 需要重點(diǎn)解決的難題。最后,就是單元化之后,從集群為單位的運(yùn)維到以單元為單位的運(yùn)維,也給美團(tuán)業(yè)務(wù)部署能力帶來(lái)很大的挑戰(zhàn)。
瑪氏中國(guó)|2025年度瑪氏箭牌北京區(qū)域包材及原材料倉(cāng)儲(chǔ)(VMI)項(xiàng)目
2180 閱讀華為的物流“布局”,為何備受關(guān)注?
1390 閱讀北美倉(cāng)配一體機(jī)會(huì)和風(fēng)險(xiǎn)
1208 閱讀?年?duì)I收15億的跨境物流企業(yè)要上市
951 閱讀縱騰集團(tuán)借殼上市,6.4億收購(gòu)A股上市公司綠康生化
896 閱讀解秘粵港澳大灣區(qū)規(guī)模最大的生產(chǎn)服務(wù)型國(guó)家物流樞紐——廣州東部公鐵聯(lián)運(yùn)樞紐
875 閱讀TEMU美區(qū)半托管即將開(kāi)放國(guó)內(nèi)發(fā)貨模式
778 閱讀京東物流一線員工日10周年:為5年、10年老員工授勛,為15000名標(biāo)桿頒獎(jiǎng)
731 閱讀2024年快遞滿意度出爐:順豐、京東快遞排名最高
704 閱讀TikTok撤換美國(guó)電商負(fù)責(zé)人,抖音前副總裁木青上位
642 閱讀