隨著云計算技術(shù)的持續(xù)發(fā)展,特別是近年來云原生技術(shù)在各個行業(yè)的蓬勃應(yīng)用,企業(yè)的IT基礎(chǔ)設(shè)施、中間件以及應(yīng)用開發(fā)架構(gòu)都發(fā)生了深刻的變化。隨著企業(yè)業(yè)務(wù)規(guī)模不斷擴張和快速迭代發(fā)展,作為應(yīng)用開發(fā)中承上啟下的中間件的質(zhì)量和能力的高低直接決定了企業(yè)技術(shù)架構(gòu)的命運。云原生時代的中間件也從業(yè)務(wù)耦合度高、不能為最終用戶帶來直接價值的傳統(tǒng)中間件,發(fā)展成了功能獨立、耦合度低、組件模塊化的云原生中間件,成為實現(xiàn)高性能、高可用、高伸縮性和最終一致性的分布式應(yīng)用開發(fā)架構(gòu)的關(guān)鍵部分。
中國信息通信研究院結(jié)合當(dāng)前云原生時代企業(yè)對于中間件的實際需求場景,規(guī)劃了云原生中間件標準體系,并于12月11號舉辦的OSCAR年會上,發(fā)布了國內(nèi)首個分布式消息隊列技術(shù)標準——《分布式中間件服務(wù)技術(shù)能力要求 分布式消息隊列》。
分布式消息隊列作為系統(tǒng)間相互協(xié)作的通信機制,通過高效、可靠的消息傳遞,降低應(yīng)用之間的耦合性,實現(xiàn)高效的數(shù)據(jù)交換,保障了分布式網(wǎng)絡(luò)環(huán)境下的高可用和一致性, 常用于應(yīng)用解耦、異步通信、流量削峰、日志收集、緩存更新、數(shù)據(jù)同步、事務(wù)最終一致性等典型場景。
《分布式中間件服務(wù)技術(shù)能力要求 分布式消息隊列》作為云原生中間件系列標準中首個發(fā)布的標準,適用于指導(dǎo)云服務(wù)商建設(shè)分布式消息隊列產(chǎn)品,同時規(guī)范了分布式消息隊列的評估方法。標準主要從應(yīng)用能力要求、消息隊列功能要求、運維支撐能力要求、安全能力要求、性能要求、適用場景六個方面加以規(guī)范。
分布式消息隊列參考框架
應(yīng)用能力
分布式消息隊列服務(wù)需要具備多語言支持、消息自定義、開放API、消息順序性、流量控制等功能。其中開放API功能要求了要為開發(fā)人員提供基于消息隊列開發(fā)應(yīng)用系統(tǒng)的接口,利用開放API以編程方式檢索和操作信息;要求分布式消息隊列支持多語言客戶端;消息自定義功能允許客戶根據(jù)業(yè)務(wù)需要和屬性規(guī)則設(shè)定自定義消息;流量控制功能通過對消息生產(chǎn)或消費速率的控制達到適應(yīng)網(wǎng)絡(luò)質(zhì)量的流量控制。
消息隊列功能
主要描述了消息隊列為上層分布式應(yīng)用提供數(shù)據(jù)交換通道的功能豐富性,決定了用戶能否最大程度上的實現(xiàn)按需供能、開箱即用,進而縮短項目周期、降低成本。本部分主要從延遲隊列、死信隊列、重試隊列、消費模式、訂閱方式、消息回溯、消息堆積、消息過濾、投遞語義支持、事務(wù)消息、消息路由、優(yōu)先級隊列、消息追蹤共計14個功能點提出了規(guī)范及要求。
運維支撐能力
該部分對消息隊列產(chǎn)品所依賴的資源調(diào)度和監(jiān)控能力進行了規(guī)范和要求。此項要求服務(wù)應(yīng)具備容器化支持、彈性伸縮、監(jiān)控警告、高可用性、日志管理消息跨地域復(fù)制等運維功能。
安全能力
消息隊列服務(wù)需具備身份認證、數(shù)據(jù)加密、命名空間等安全功能。要求在客戶端與服務(wù)端連接時進行身份認證,實現(xiàn)對客戶端的讀寫操作進行權(quán)限控制。同時還要能夠提供加密功能對重要或敏感數(shù)據(jù)進行加密處理來保證消息數(shù)據(jù)的安全。通過命名空間對存儲配額、流量控制、消息過期策略進行控制。
性能要求
在不同應(yīng)用場景下進行測試,對吞吐量、時延、集群加速比三個指標進行考量。測試包括在指定并發(fā)數(shù)和消息大小的前提下,分布式消息隊列在不同場景下的吞吐量;在指定隊列數(shù)、并發(fā)數(shù)和資源數(shù)前提下,分布式消息隊列的請求響應(yīng)時延,如消息的生產(chǎn)時延、消息的消費時延、端到端的時延等;通過對同樣場景的測試任務(wù),觀察增加資源后性能指標的加速情況,驗證性能增速和資源增速之間的比值。
測試場景
分布式消息隊列在進行性能測試時應(yīng)區(qū)分不同業(yè)務(wù)場景,在進行測試時需根據(jù)自身業(yè)務(wù)模型選取至少一種業(yè)務(wù)場景進行性能測試,具體性能指標需要根據(jù)業(yè)務(wù)場景來確定。
中國信息通信研究院會持續(xù)緊跟云原生領(lǐng)域風(fēng)向,密切關(guān)注云原生中間件技術(shù)的發(fā)展,對云原生中間件服務(wù)提出要求,引導(dǎo)服務(wù)貼近產(chǎn)業(yè)實際需求。未來將繼續(xù)發(fā)揮標準的引領(lǐng)作用,做好云原生中間件領(lǐng)域標準體系的設(shè)計規(guī)劃,持續(xù)深化以用戶需求為中心的技術(shù)規(guī)范和能力要求。