<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          美團(tuán)外賣(mài)分布式系統(tǒng)架構(gòu)設(shè)計(jì)

          共 3179字,需瀏覽 7分鐘

           ·

          2022-03-06 00:09

          背景

          美團(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):

          1. 即時(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)。

          2. 圍繞成本、效率、體驗(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í)物流架構(gòu)

          美團(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)的。

          分布式系統(tǒng)實(shí)踐

          上圖是比較典型的美團(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的快速部署&容災(zāi)

          單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)流量。

          智能物流的核心技術(shù)能力和平臺(tái)沉淀

          機(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)題。

          未來(lái)的挑戰(zhà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)。

          作者簡(jiǎn)介

          宋斌,美團(tuán)資深技術(shù)專(zhuān)家,長(zhǎng)期參與分布式系統(tǒng)架構(gòu)、高并發(fā)系統(tǒng)穩(wěn)定性保障相關(guān)工作。目前擔(dān)任即時(shí)物流團(tuán)隊(duì)后臺(tái)技術(shù)負(fù)責(zé)人。2013年加入美團(tuán),參與過(guò)美團(tuán)外賣(mài)C端、即時(shí)物流體系從零搭建?,F(xiàn)在帶領(lǐng)團(tuán)隊(duì)負(fù)責(zé)調(diào)度、清結(jié)算、LBS、定價(jià)等業(yè)務(wù)系統(tǒng)、算法數(shù)據(jù)平臺(tái)、穩(wěn)定性保障平臺(tái)等技術(shù)平臺(tái)的研發(fā)和運(yùn)維。最近重點(diǎn)關(guān)注AIOps方向,探索在高并發(fā)、分布式系統(tǒng)架構(gòu)下,如何更好的做好系統(tǒng)穩(wěn)定性保障。

          來(lái)源:https://mp.weixin.qq.com/s/vdxhbPTlYFftAQkNhfFufA


          推薦閱讀:

          不是你需要中臺(tái),而是一名合格的架構(gòu)師(附各大廠中臺(tái)建設(shè)PPT)

          企業(yè)IT技術(shù)架構(gòu)規(guī)劃方案

          論數(shù)字化轉(zhuǎn)型——轉(zhuǎn)什么,如何轉(zhuǎn)?

          華為干部與人才發(fā)展手冊(cè)(附PPT)

          企業(yè)10大管理流程圖,數(shù)字化轉(zhuǎn)型從業(yè)者必備!

          【中臺(tái)實(shí)踐】華為大數(shù)據(jù)中臺(tái)架構(gòu)分享.pdf

          華為的數(shù)字化轉(zhuǎn)型方法論

          華為如何實(shí)施數(shù)字化轉(zhuǎn)型(附PPT)

          超詳細(xì)280頁(yè)Docker實(shí)戰(zhàn)文檔!開(kāi)放下載

          華為大數(shù)據(jù)解決方案(PPT)

          瀏覽 149
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉伊人在线观看免费 | a√天堂中文8 | 91日日夜夜 | 2025国产精品久久 | 一区二区三区在线视频免费 |