消息中間件在郵政電子商務平臺的應用
時間:2022-08-01 03:29:00
導語:消息中間件在郵政電子商務平臺的應用一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
摘要:通過對郵政電子商務平臺系統架構及RocketMQ消息中間件技術的分析,提出對平臺架構進行優化設計,利用消息中間件實現系統模塊之間的解耦合,減少相互依賴的建議。
關鍵詞:RocketMQ;消息中間件;電子商務平臺;集群郵政
電子商務平臺業務受理的一個重要特征是全天營業,實時交易占比高,接入渠道豐富,對接第三方系統繁多。電子商務的業務特點決定了系統在響應時間上必須滿足要求,以達到更好的客戶體驗,確保交易完整性。對于平臺自有系統,可以通過邏輯優化,盡可能避免延時,但是第三方系統的延時則不可控,通常無法干預其系統優化。本文描述了消息中間件技術在省郵政電子商務平臺上的應用,實現平臺交易模塊的解耦合,減少模塊處理延時的疊加效應,提高平臺的響應速度,提升客戶體驗。
1消息中間件的選型分析
隨著企業信息化建設的不斷深入,多種業務應用相互關聯,容易造成底層數據分散,應用系統間的耦合度高。消息中間件技術有兩個核心功能:異步和解耦。這兩個核心功能可對不同系統間的交互進行解耦,總體上提高應用系統的工作效率,增強系統的可用性、穩定性和可擴展性。消息隊列已經逐漸成為企業IT系統內部通信的核心手段,可以在分布式環境下提供應用解耦、彈性伸縮、冗余存儲、流量削峰、異步通信、數據同步等功能。常用消息中間件相關特點及對比如表1所示。系統在技術選型上包含以下幾方面考量:一是系統要保證數據的完整性,因此選用的中間件應該支持事務處理,并保證交易數據不會丟失;二是某些業務場景會引起高并發交易,因此中間件應具備應對突發業務高峰的處理能力;三是省平臺選型應與集團平臺所用技術保持一致;四是優先選擇支持云部署的產品。綜上分析,對比常用中間件的技術特點,最終選擇RocketMQ作為本次應用的消息中間件。
2RocketMQ技術簡介
RocketMQ是阿里開源的消息中間件,目前歸屬于Apache頂級項目,它是純Java開發,具有高吞吐量、高可用性、適合大規模分布式系統應用的特點。RocketMQ集群包含4個模塊:Namesrv、Broker、Producer、Consumer。Namesrv存儲當前集群所有Brokers信息、Topic與Broker的對應關系,功能簡單,穩定性高。多個Namesrv之間相互沒有通信,單臺Namesrv宕機不影響其他Namesrv與集群。Broker是集群最核心的模塊,主要負責Topic消息存儲、消費者的消費位點管理(消費進度),可理解為RocketMQ服務的注冊中心。Producer是消息生產者,每個生產者都有一個ID(編號),多個生產者實例可以共用一個ID,同一個ID下所有實例組成一個生產者集群。生產者通過Namesrv獲取Topic與Broker的映射關系,更新到本地內存中,再和Topic涉及的所有Broker建立長連接。Consumer是消息消費者,每個訂閱者也有一個ID,多個消費者實例可以共用一個ID,同一個ID下所有實例組成一個消費者集群。消費者通過Namesrv獲取當前消費Topic所涉及的Broker,直連Broker。
3郵政電子商務平臺架構分析及優化
3.1平臺架構分析。郵政電子商務平臺架構如圖1所示,業務受理交易通過各渠道系統的渠道前置子系統接入核心應用子系統,核心應用分配一個服務進程處理,再調用外聯前置,將交易請求轉發至第三方。整個交易過程串行,每個子系統的處理時間疊加則為整個交易的處理時間,任意環節出現延時,都會在整個交易的處理時間上產生疊加效應。對于本地系統,可以通過對各子系統的優化處理,減少延時,但對于第三方系統郵政無法干預其優化過程,因此第三方系統延時產生的影響更大。3.2RocketMQ消息中間件在平臺的應用。為了解決交易延時,在核心應用子系統與外聯前置之間部署一套RocketMQ消息中間件子系統,同時在核心應用和外聯前置增加一對消息生產者與消費者模塊,用于生產及消費消息。系統模塊設計時,選擇在訂單生成與訂單支付之間進行解耦合,訂單生成后,會調用消息生產者模塊主動向消息中間件登記一條消息,標志訂單生成成功;后續消息消費者(位于外聯前置)取走消息,并根據消息類型進行個性化處理,這里主要是進行第三方保險公司投保操作,以此實現訂單生成與支付投保異步處理。優化后的電子商務平臺架構如圖2所示。首先,平臺交易到達核心應用后,通過生產者模塊向RocketMQ消息中間件推送一條消息。然后,核心應用返回前端交易已提交成功,前端交易完成,后續進行交易狀態查詢。最后,外聯前置通過消費者模塊取出消息,根據消息內容獲取訂單信息組裝報文發送至第三方,獲取第三方返回后將結果更新到訂單信息中。交易流程優化后,前端的訂單支付交易無需等待第三方結果,很快提示交易提交成功,通過訂單狀態查詢功能即可獲取訂單狀態;外聯前置在第三方調用時,可以對失敗的消息進行多次調用,直至達到閾值或調用成功為止。3.3RocketMQ集群部署。RocketMQ部署比較靈活,提供多種集群部署方式,通過配置可以快速形成集群部署,部署方式為異步多Master多Slave模式,每個Master配置一個Slave,部署兩組Master-Slave,HA采用異步復制方式,主備消息延遲短,僅為毫秒級。這種模式的優點是,即使磁盤損壞,消息丟失也較少,且消息實時性不受影響,因為Master宕機后,消費者仍然可以從Slave消費,此過程對應用透明,不需要人工進行干預。RocketMQ在系統應用時,需要進行相關的約束設計。3.3.1增加消息去重策略。在某些情況下,應用消費了消息,但沒有反饋給RocketMQ,該消息將會再次被消費,因此需要增加消息去重策略,可通過對應的狀態位決定是否需要再次處理消息。3.3.2限制消息報文大小。生產消息時需控制消息報文的大小,某些應用場景不需要將所有信息都封裝到消息體中,僅記錄關鍵信息即可。3.3.3合理規劃消息分組。根據RocketMQ提供的消息特性,結合業務特點,使用分組-Topic-Tag三級結構,按平臺-業務-模式將消息分類。
4應用效果
RocketMQ消息中間件的應用,使交易的本地處理與第三方調用解耦合,交易各項指標都有所提升。系統優化改造后,使用LoadRunner等測試工具對郵政各業務場景進行了性能壓力測試,結果顯示,事務平均通過率達98%以上,事務平均響應時間為1.305s,90%的事務響應時間在2s內。前端最直接的體驗是交易耗時短,系統監控發現,第三方處理超時對前端請求影響較小。
參考文獻
1歐志芳.基于RocketMQ實現異構數據庫同步.網絡安全技術與應用,2016,12
2趙偉,周兵.基于ERP系統的消息中間件設計與實現.計算機工程,2008,10
3楊開元.RocketMQ實戰與原理解析.北京:機械工業出版社,2018
作者:香華冠 單位:中國郵政集團公司廣東省信息技術局
- 上一篇:終身體育理念下高校體育教學分析
- 下一篇:旅游電子商務發展問題思考