跨境物流鏈路怎麼作?菜鳥工程師打造了全球通關「神器」

摘要: 阿里妹導讀:2018天貓雙11物流訂單量創新高,突破10億件,這是一次前所未有的物流洪峯。天貓雙11十年來,見證了物流業從手寫地址、人工分揀,到電子面單、機器人分揀。不管是物流園區、幹線運輸,仍是秒級通關、末端配送,都經過技術高效鏈接,智能物流骨幹網正在加快實現行業數字化、智能化升級。redis

阿里妹導讀:2018天貓雙11物流訂單量創新高,突破10億件,這是一次前所未有的物流洪峯。天貓雙11十年來,見證了物流業從手寫地址、人工分揀,到電子面單、機器人分揀。不管是物流園區、幹線運輸,仍是秒級通關、末端配送,都經過技術高效鏈接,智能物流骨幹網正在加快實現行業數字化、智能化升級。算法

所以,阿里技術推出《菜鳥智慧新物流》專題,邀請菜鳥技術人,爲你揭祕物流核心技術。今天第一期,讓咱們一塊兒走近神祕的「神鯨網絡全球通關平臺」,全方位瞭解新技術時代下的跨境智能關務。數據庫

前言設計模式

「跨境」,這是在當今行業一個很是 fashion的名詞。從2014年起,海關總署陸續頒發多項跨境貿易政策,給跨境進出口業務帶來了諸多紅利。2014年也被不少業內人士稱爲跨境進口電商元年。也許你會聽到這樣一段對話:緩存

A:Hey,兄dei,你是作什麼的?服務器

B:哦,我搞跨境物流的。網絡

A:是嘛,跨境這幾年很火啊!政府在大力扶持這一塊,我看不少公司都在作一塊,有前途!數據結構

B:哪有?道路坎坷,很艱辛的,不過累並快樂着,我也挺看好這塊的!架構

在整個跨境物流鏈路中,會涉及到多個角色:倉、幹線、關務、快遞等。關務是跨境物流鏈路最核心的環節,須要協同海關,國檢等政府部門完成整個進出口國的通關操做。這塊不只業務複雜,並且存在諸多不肯定性。爲此,咱們搭建了「神鯨網絡全球通關平臺」。旨在對接海關,協同CP(cainiao partner),從線下到線上,以全球化、數據化、智能化爲方向,以快速、輕量、多態爲核心目標,爲跨境電商客戶提供全球一體化的通關解決方案!併發

痛點和挑戰

以下是整個通關全鏈路業務流程,包含資質備案、風控、出入區、跨境通關、稅匯等核心領域。整個鏈路交互節點繁多,不一樣國家,甚至不一樣監管區在申報模式,交互方式,通關能力上都存在很大差異,另外因爲申報鏈路冗長,任何一個節點出現抖動都有可能致使整個通關發生異常,進而致使申報時效拖長,爲保障用戶可以正常通關,咱們每每須要投入更多的成本去解決申報鏈路過程發生的種種問題。因此,如何有效使用海關通關能力,給到跨境商戶穩定的、高效的、統一的一站式通關解決方案?這是咱們須要攻克的核心難題。

應對策略

通關異常繁多,申報時效冗長,大促成本飆高是大部分跨境通關企業碰到的問題。如何去異常,打時效,降成本,保障通關絲般順滑?基於此,在神鯨網絡通關平臺中,咱們作了諸多舉措,有一體化監控的星宮大盤,陽關道批量申報,政企協同全鏈路摸高壓測以及守護神智能輔助系統等等。今年的雙十一大促上,由於有這些強有力的後盾,加上海關通關能力再創新高,你們在喝茶+聊天中度過了一個輕鬆愉快的雙十一。今天,咱們重點來交流下星宮大盤、批量申報和智能輔助系統。

星宮大盤,一體化監控

整個通關鏈路長,依賴系統多,若是有一個全鏈路的監控系統進行護衛,不只能夠實時窺視整個鏈路流轉狀況,還能夠作到異常的實時跟蹤處理。爲此,咱們搭建了關務數據中心,承載關務全部數據,並依託它構建了整個星宮大盤產品,將業務監控,指標監控,系統監控一體化,真正實現360度無死角主動監控。以下圖(注:下圖中數據非真實數據,僅作示例):

數據中心

數據中心涵蓋了整個關務生態的數據,經過實時+離線兩種方式,很好的支撐了實時業務監控和指標監控等核心業務。以下是整個數據中心核心架構,包含消息接入,指標計算,數據存儲等核心模塊。

做爲一個數據產品,最基本的的訴求就是能保證數據實時性、準確性,那怎麼在大促狀況下可以作到99.99%數據準確性?這是數據中心面臨的最大的一個挑戰。

實時性(秒級生效)

業務系統經過消息埋點的方式記錄各個鏈路節點數據,經過阿里消息中間件消息異步推送給數據中心。數據中心擁有一個支持水平擴展的龐大的服務器集羣,具備強大的消息處理能力,保證消息的實時消費。

經過緩存+異步存儲的方式提高總體消息處理能力; 存儲以前先往緩存存一份,後面熱點查詢優先從緩存獲取數據,提升查詢效率,數據插入若是超時或者失敗當即建立調度任務進行異步重試插入。

準確性(99.99%)

因爲關務業務特殊性,星宮須要保證監控數據的準確性,傳統的方案通常是經過流計算的方式把數據統計出來,這種方案統計和詳情數據是分開的,可能會致使數據統計和真實數據存在偏差的狀況,這對於星宮來講是不可接受的。爲此,項目組另闢蹊徑採用實時詳情數據聚合的方案,這裏,咱們引入了ES中間件,阿里中間件團隊針對ES作了很是多的優化,具備高性能的聚合能力,支持海量級數據的實時聚合。另外咱們在數據結構存儲上面作了多層優化,好比:

  • 熱點查詢條件用int來邏輯映射,字段存儲底層採用列存儲。

  • 爲了加快檢索,存儲樹形結構把目錄加載到緩存,猶如數據字典同樣。

另外爲了保證數據消費不丟失,在客戶端啓動了多層重試機制,保證數據的最終一致性。今年大促上,數據中心表現出色,雙11當天QPS達到40000+ 平均耗時11ms,正是這種強大的數據消費能力保證了星宮數據實時性,另外億級別數據多維度聚合統計基本上都是秒級返回,真正作到了100%可用。

批量申報,獨木橋變陽關道

因爲海關各個節點大多采用MQ+FTP的技術架構,文件數的個數會影響總體通道消費能力。另外總署的56號公告要求四單申報進行加簽操做,隨之帶來的將是驗籤成本的增長。爲減輕總署通道壓力,並提高驗籤能力,咱們採用了批量申報的策略,簡而言之就是將多個訂單聚合到一塊兒進行申報,一次加簽操做,一次申報動做。以下:

批量申報調度模塊自研了一個輕量的批量調度框架實現,經過一個任務池彙總全部任務,按照不一樣業務規則聚合同類型的任務而後進行消費。以下:

記得當時該項目剛上線時,還有一個小插曲,壓測下來發現總體性能遠遠達不到要求,這可急壞了整個項目組。任務消費過程大致分爲:分頁撈取任務-》鎖定任務-》消費任務。其中撈取任務和鎖定任務過程是經過搶佔分佈式鎖的方式來防止併發,避免同一個任務被多個線程撈取並消費。正式因爲這個分佈式鎖的限制以及單庫單表的DB瓶頸,致使總體性能一直上不去。

通過討論,最終咱們採用了分佈式鎖池+DB散列方案。即既然單個分佈式鎖沒法知足要求,那麼設計成鎖池好了;既然單庫單表存在瓶頸,那按照業務關鍵字進行散列。分佈式鎖池咱們使用的是redis的Set數據結構+spop和sadd命令實現的,應用啓動時初始化指定個數的鎖放到Set數據結構中,而後經過spop隨機獲取一個模值撈取任務,任務鎖定後再經過sadd返還鎖,插入任務時也是經過鎖個數進行隨機散列到多個庫多個表中。經過該機制改造後,總體性能大大提高,數據庫壓力也下降了好幾倍。

此次微小的調整,卻帶來了巨大的性能提高,在今年雙十一大促上,批量申報也是大放異彩,整個通關審單時效大大下降,申報能力相比往年也有質的提高。以下是17年和18年雙十一某一屬地海關的平均審單時效對比,相比17年,今年的平均審單時效很是穩定,基本保持在20分鐘之內,海關上行和下行通道毫無壓力。

以下是某海關30分鐘內審單完成率狀況,相比往年,今年審單能力有巨大的飛躍,基本上是零堆積,申報速度跟審單速度幾乎持平。

智能輔助系統,關務守護神

今年是關務的智能化元年,在正向申報鏈路上,咱們推出了智能限流與智能hold單產品,自適應保護自身與海關係統。在人工成本下降的同時,保證了海關係統的最大吞吐能力。在異常處理上,咱們基於規則引擎上線了異常智能處理系統,經過不斷豐富異常處理規則,系統變得愈來愈聰明,基本上能夠自動處理大部分海關異常。同時,做爲關務智能大腦,還爲關務數據中心提供數據分析服務。智能系統包含產品以下:

智能限流

整個智能限流的設計不只支持集羣環境下任意接口秒級與分鐘級精準限流,還能根據接口的RT與失敗率等指標對接口流量進行動態調節。

1.技術架構:

  • 智能限流分三個主要模塊:資源監控(對資源的請求量精準統計)、限流策略(請求量達到閾值後的操做)、智能調控(依據必定的規則與算法調節)。

  • 智能限流總體採用了pipeline的設計模式,目前實現了單機限流、集羣限流和自適應限流三個閥門,只有所有經過閥門,請求才能被放行,不然就會被攔截。這種設計便於維護以及後期限流策略的擴展,例如在雙十一以前緊急增長的集羣分鐘級限流(開發測試僅半我的日)。

  • 單機限流和集羣限流都是固定限流,即人爲提早設定好接口的限流值,若是請求量超過這個值,便會被流控。人工限流的關鍵是對請求量的精準統計。

  • 動態限流則會依賴一些指標進行實時計算和分析,系統按照必定規則自行判斷是否須要限流,這個限流是將接口能力分爲檔位進行調整,既會下調,也會自動上調恢復接口的能力。

2.資源監控

資源監控是指統計某個接口的各類指標,包含請求量/失敗量/限流量等,這些指標基本上是在單臺機器上的統計。可是在限流場景,單機限流僅僅能保護機器自己,對於下游的保護,仍是須要集羣限流功能,所以還須要對集羣環境下的資源訪問統計。

  • 單機指標統計

單機指標主要是基於滑動窗口的原理進行統計,好比QPS(每秒的請求數)的統計是將1秒分爲5個時間窗口,每一個窗口統計200ms內的請求,最後作累加。

單機指標監控主要是作單機限流,單機限流的最大好處是可以保障單臺機器不會被上游壓垮。而對下游而言,單機限流可用性較低,對集羣數據來講準確性不能保障。

  • 集羣指標統計

咱們不只僅要保護本身,還要保護下游系統,所以須要保證集羣環境下給到下游的量是精確可控制的。

集羣指標統計須要藉助分佈式緩存實現,經過使用incr原子累加功能,實如今分佈式環境下對請求量的統計。

針對QPS的統計,緩存的key由接口名稱+秒級時間戳(yyyyMMddmmSS)組成,例如:xxxx_20181118012012。

集羣統計的準確性依賴兩個點:一個是分佈式緩存的性能,另外一個是分佈式環境下每臺機器的時間一致性(NTP網絡能夠保證)。

智能限流的緩存使用的是阿里集團的tair(MDB),單次讀寫平均在5ms之內,對於併發量不是特別大的業務系統來講偏差徹底能夠接受。

3.限流策略

經過對資源的準確監控,人工固定限流比較容易實現,只要比較下當前的實際qps值和設定的qps值大小便可,達到設定的限流值該請求就會被終止(目前經過拋出指定類型的異常)。

不管是秒級仍是分鐘級限流,只是監控的粒度不一樣,即統計的key的時間戳的區別,對於限流的邏輯徹底一致。

在限流時,咱們還會進行主動通知,便於人工干預。

異常智能處理

異常智能處理主要是在平常和大促後的掃尾階段發揮重要做用。它以關務知識大腦爲核心,協同CP、小2、系統共同高效解決業務異常。處理的異常越多,沉澱的就越多,系統也會愈來愈智能。

關務異常存在繁、雜、多、變等特色,若是靠人工去處理每個異常訂單,須要投入巨大的成本,時效也沒法獲得保障,在大促期間,異常訂單量更是以百倍級別增加。技術是第一輩子產力,咱們須要機器代替人工處理這些異常,系統自動處理也就應運而生。

然而,通過不斷的實踐證實,短時間單純依賴系統自動處理全部的異常是不現實的,有部分仍是須要人工介入(好比備案問題),而後再利用系統進行從新申報。所以,異常智能處理系統的目標是:搭建人機交互閉環機制,沉澱底層知識大腦,快速提升異常處理的智能化程度。

在底層實現上,咱們搭建了一套規則庫用於知識沉澱,上層實時監聽海關異常回執,實現大部分異常秒級處理;同時,啓動定時異常處理任務,天天定點撈取遺漏訂單進行處理;最後,爲小二和CP推送須要人工介入的異常訂單,處理完後再推送到系統,由系統接着處理後續流程。

展望將來

在全球化的道路上,咱們任重而道遠,AI智能,大數據協同是將來的方向,基於人工智能方式實現全球通關的絲般順滑,讓全球通關更簡單!這是咱們的宗旨和目標,咱們會一步一個腳印一直走下去!

將來的路還很長,咱們迫切須要有更多的能人異士加入,一塊兒譜寫曠世不滅的傳奇。若是你足夠優秀,若是你不甘平庸,來吧,讓咱們一塊兒風騷前行!

原文連接

相關文章
相關標籤/搜索