云原生中間件技術(shù)白皮書_第1頁
云原生中間件技術(shù)白皮書_第2頁
云原生中間件技術(shù)白皮書_第3頁
云原生中間件技術(shù)白皮書_第4頁
云原生中間件技術(shù)白皮書_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

云原生中間件

技術(shù)白皮書隨著云原生技術(shù)在各個行業(yè)快速落地,基于云計算基礎(chǔ)設(shè)施的應(yīng)用開發(fā)架構(gòu)已經(jīng)發(fā)生了巨大的變革。中間件作為云平臺業(yè)務(wù)上云的關(guān)鍵組件,起到重要支撐作用。然而,目前云原生時代中間件范疇尚未明確定義,云原生中間件的生態(tài)現(xiàn)狀并不清晰,普及推廣云原生中間件對加速云原生技術(shù)落地有著積極作用。本白皮書首先闡述了云原生和中間件的基本概念,回顧了中間件從電子信息時代到云原生時代的發(fā)展歷程,總結(jié)了當(dāng)前云原生時代應(yīng)用的開發(fā)特點,同時開創(chuàng)性地提出了設(shè)計云原生中間件的十個關(guān)鍵要素,最后梳理了目前典型的云原生中間件服務(wù),并預(yù)測了未來云原生中間件的發(fā)展趨勢。TOC\o"1-5"\h\z―、概述 7(一) 云原生概述 7(二) 中間件定義 7二、 中間件發(fā)展歷程 8(一) 中間件的起源 8(二) 互聯(lián)網(wǎng)時代的中間件 9(三) 云計算為中間件提供了平臺 10(四) 開源推動中間件技術(shù)發(fā)展 11(五) 云原生賦予中間件新的內(nèi)涵 11三、 云原生應(yīng)用開發(fā)特點 12(一) 容器與編排 13(二) 微服務(wù)化 14(三) 計算存儲分離 15(四) 服務(wù)網(wǎng)關(guān) 16(五) 分布式事務(wù)模式 16(六) 業(yè)務(wù)服務(wù)無狀態(tài)化 17四、 云原生中間件十要素 17(一) 容器原生 18(二) 服務(wù)狀態(tài) 18(三) 組件模塊化 19(四) 事件驅(qū)動 19(五) 可觀測 20(六) 韌性設(shè)計 21(七) 彈性伸縮 21(八) 動態(tài)部署 22(九) 統(tǒng)一響應(yīng)式與聲明式的API 22(十)平臺化 23五、 云原生中間件典型服務(wù) 23(一) 分布式消息隊列 23(二) 分布式事務(wù)系統(tǒng) 25(三) 分布式配置服務(wù) 27(四) API網(wǎng)關(guān) 28(五) 分布式緩存 29(六) 鏈路跟蹤服務(wù) 30六、 云原生中間件發(fā)展趨勢 31(一) 技術(shù)架構(gòu)上趨于統(tǒng)一 31(二) 深度融合云原生熱點技術(shù) 31(三) 云原生中間件領(lǐng)域標(biāo)準(zhǔn)化進(jìn)程持續(xù)深入 32概述(一) 云原生概述云原生是一系列云計算技術(shù)體系和企業(yè)管理方法的集合,既包含了實現(xiàn)應(yīng)用云原生化的方法論,也包含了落地實踐的關(guān)鍵技術(shù)云原生應(yīng)用利用容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式PI等代表性技術(shù),來構(gòu)建容錯性好、易于管理和便于觀察的松耦合系統(tǒng)。云原生通過利用可靠的自動化手段對系統(tǒng)做出頻繁、可預(yù)測的重大變更,讓應(yīng)用隨時處于待發(fā)布狀態(tài)。云原生技術(shù)有利于各組織在公有云、私有云和混合云等新型動態(tài)環(huán)境中,構(gòu)建和運(yùn)行可彈性擴(kuò)展的應(yīng)用,借助平臺的全面自動化能力,跨多云構(gòu)建微服務(wù),持續(xù)交付部署業(yè)務(wù)生產(chǎn)系統(tǒng)。1經(jīng)過幾年的發(fā)展,云原生的理念不斷豐富和落地。中國信息通信研究院經(jīng)過多方面研究,總結(jié)云原生的概念為適合云的應(yīng)用”和“好用的云架構(gòu)”2?;谠圃募夹g(shù)和管理方法,用戶能夠更好地把業(yè)務(wù)生于云或遷移到云平臺,從而享受云的高效和持續(xù)的服務(wù)能力。(二) 中間件定義中間件是指網(wǎng)絡(luò)環(huán)境下處于操作系統(tǒng)、數(shù)據(jù)庫等系統(tǒng)軟件和應(yīng)用軟件之間的一種起連接作用的分布式軟件。中間件主要解決異構(gòu)網(wǎng)絡(luò)環(huán)境下分布式應(yīng)用軟件的互連與互操作問題。提供標(biāo)準(zhǔn)接口、協(xié)議,1引自CNCF對云原生的定義2引自《云原生技術(shù)實踐白皮書(2019年)》屏蔽實現(xiàn)細(xì)節(jié),提高應(yīng)用系統(tǒng)易移植性為其主要技術(shù)優(yōu)勢。它使用戶能使用一種腳本語言來選擇和連接已有的服務(wù),從而生成簡單程序的軟件開發(fā)工具。中間件涉及軟件的各個領(lǐng)域,是供公用應(yīng)用程序編程接口的軟件。中間件在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫之上,應(yīng)用軟件的下層,總的作用是為處于自己上層的應(yīng)用軟件提供運(yùn)行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復(fù)雜的應(yīng)用軟件。中間件是一種獨立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源。二、中間件發(fā)展歷程(一)中間件的起源1946年,世界上第一臺電子計算<ENIAC的誕生,標(biāo)志著人類進(jìn)入了電子信息時代。上世紀(jì)六十年代,最早的程序語言Fortran出現(xiàn),標(biāo)志著現(xiàn)代意義上的軟件誕生。為了更好地支撐應(yīng)用軟件系統(tǒng),中間件隨之登上歷史舞臺。作為連接應(yīng)用和底層資源的橋梁,中間件能夠屏蔽基礎(chǔ)硬件、操作系統(tǒng)和通訊協(xié)議的異構(gòu)性,為應(yīng)用開發(fā)者提供統(tǒng)一標(biāo)準(zhǔn)的交互界面。隨著軟件的不斷發(fā)展及其規(guī)模的不斷增大,分布式系統(tǒng)應(yīng)運(yùn)而生。隨之出現(xiàn)的還有異構(gòu)分布網(wǎng)絡(luò)環(huán)境下軟件系統(tǒng)的通信、互操作、協(xié)同、事務(wù)、安全等共性難題。不斷出現(xiàn)的新業(yè)務(wù)需求驅(qū)動應(yīng)用架構(gòu)和信系統(tǒng)持續(xù)演進(jìn),進(jìn)而要求中間件不斷地凝練共性問題,提供標(biāo)準(zhǔn)化的支撐機(jī)制。BELL實驗室于1990年開發(fā)的Tuxedo系統(tǒng),標(biāo)準(zhǔn)化了分布式交易事務(wù)的控制方式。IBM在1994年發(fā)布了消息隊列服務(wù)MQ,標(biāo)準(zhǔn)化了不同應(yīng)用程序間異步通信的方式,解決了分布式系統(tǒng)中通訊服務(wù)問題。中間件作為解決共性問題的標(biāo)準(zhǔn)化工具,大大降低了系統(tǒng)的復(fù)雜度和協(xié)作成本,逐漸成為網(wǎng)絡(luò)應(yīng)用的基礎(chǔ)設(shè)施。(二)互聯(lián)網(wǎng)時代的中間件到了互聯(lián)網(wǎng)時代,用戶數(shù)量爆發(fā)增長導(dǎo)致了互聯(lián)網(wǎng)業(yè)務(wù)的快速增長,越來越多的應(yīng)用程序開始部署在分布式的網(wǎng)絡(luò)環(huán)境里運(yùn)行。傳統(tǒng)中間件以類庫和框架的形式來加強(qiáng)應(yīng)用能力,標(biāo)準(zhǔn)化程度和交互性能亟待提升。由于中間件構(gòu)件模型類庫和架構(gòu)沒有統(tǒng)一的標(biāo)準(zhǔn),不同節(jié)點下的中間件自身在構(gòu)件描述、發(fā)布、調(diào)用、互操作協(xié)議及數(shù)據(jù)傳輸?shù)确矫娉尸F(xiàn)出巨大的差異性。另外,以類庫和框架的形式提供能力必然使得中間件與業(yè)務(wù)應(yīng)用有極強(qiáng)的耦合度,存在可移植性差、適應(yīng)性低等問題,進(jìn)而使得應(yīng)用在不同分布式節(jié)點上的交互變得困難重重。另一方面,爆發(fā)增長的用戶帶的巨大流量和數(shù)據(jù)也沖擊互聯(lián)網(wǎng)應(yīng)用,耦合度高的傳統(tǒng)中間件難以適配動態(tài)多變的流量的互聯(lián)網(wǎng)環(huán)境。在設(shè)計之初僅考慮支撐當(dāng)前應(yīng)用的能力也使得中間件在技術(shù)上具有較大的局限性,在復(fù)雜的分布式互聯(lián)場景下無法很好的支撐上層應(yīng)用系統(tǒng)。與此同時,多變的互聯(lián)網(wǎng)流量對基礎(chǔ)資源的靈活配置的需求也史無前例的增大,快速增長的業(yè)務(wù)與僵化如基礎(chǔ)設(shè)施之間的矛盾日益嚴(yán)重。中間件需要在存在多種硬件系統(tǒng)的分布式異構(gòu)環(huán)境中,技撐各種各樣的系統(tǒng)軟件,以及風(fēng)格各異的網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)體系結(jié)構(gòu)。這些痛點驅(qū)動著軟件與中間件的技術(shù)革新,如何使用中間件技術(shù)更媯復(fù)用業(yè)務(wù),提升IT基礎(chǔ)設(shè)施的業(yè)務(wù)敏捷性,是互聯(lián)網(wǎng)時代中間件服務(wù)應(yīng)該考慮的關(guān)鍵問題。(三)云計算為中間件提供了平臺云計算時代的到來為企業(yè)靈活多變的業(yè)務(wù)和僵化的IT基礎(chǔ)設(shè)施之間的尖銳矛盾提供了完美的解決方案。彈性的云計算資源根據(jù)業(yè)務(wù)流量進(jìn)行擴(kuò)縮,提高資源利用率;平臺化的資源托管,解決了傳統(tǒng)集群的運(yùn)維繁瑣問題;云計算重構(gòu)了企業(yè)IT基礎(chǔ)設(shè)施,在業(yè)務(wù)系統(tǒng)逐漸遷移到云上的過程中,中間件起到了至關(guān)重要的作用。業(yè)務(wù)上云的過程往往不是一蹴而就,企業(yè)在云計算構(gòu)建及落地過程中,出于對新興技術(shù)未知的顧慮以及對核心數(shù)據(jù)資產(chǎn)的保護(hù),往往是共有云、私有云的混合部署,這樣對企業(yè)業(yè)務(wù)不會造成太大的影響同時提高了資源調(diào)度的靈活性。在原海資源、共有云、私有云等不同的平臺之間,以及部署其上的不同應(yīng)用之間進(jìn)行數(shù)據(jù)傳遞和消息互通至關(guān)重要,云計算時代的中間件就扮演了實現(xiàn)不同平臺上的應(yīng)用互聯(lián)互通標(biāo)準(zhǔn)化的重要角色。同時云計算也為中間件技術(shù)的發(fā)展提供了更廣闊的空間和舞臺,中間件逐漸成為云基礎(chǔ)構(gòu)建中的一部分,企業(yè)用戶能夠使用云中間件將業(yè)務(wù)流程逐步遷移到云集成服務(wù)上,最終實現(xiàn)靈活擴(kuò)展和降本增效。(四)開源推動中間件技術(shù)發(fā)展作為軟件代碼標(biāo)準(zhǔn)化的方式,開源在云計算興起過程中發(fā)揮了至關(guān)重要的作用,開源打破了技術(shù)壟斷,為企業(yè)提供了一個共同制訂事實標(biāo)準(zhǔn)的平等機(jī)會。蓬勃發(fā)展的云計算與快速前行的開源發(fā)揮了相互促進(jìn)的作用。目前,在與云計算相關(guān)的虛擬化、容器、分布式存儲、自動化運(yùn)維等領(lǐng)域,開源已經(jīng)成為技術(shù)主流,深刻影響著云計算的發(fā)展方向。在開源技術(shù)開放協(xié)作的理念下,傳統(tǒng)中間件之間相互孤立的鴻溝將不復(fù)存在。隨著開源的價值逐漸獲得國內(nèi)外公司的認(rèn)同,越來越多中間件領(lǐng)域的優(yōu)質(zhì)項目涌現(xiàn)出來,如阿里開源的分布式服務(wù)框架Dubbo、分布式消息隊列RocketMQ,騰訊開源的微服務(wù)框架TARS等,已經(jīng)被國內(nèi)外眾多企業(yè)用于生產(chǎn)。(五)云原生賦予中間件新的內(nèi)涵在容器及編排技術(shù)、開源、微服務(wù)等云原生理念的帶動下,將應(yīng)用部署到云端已經(jīng)是不可逆轉(zhuǎn)的趨勢。在現(xiàn)有業(yè)務(wù)代碼不變的情況下,想要讓分布式系統(tǒng)無縫入云,如何設(shè)計云原生中間件以支撐應(yīng)用的遷變遷成為關(guān)鍵問題。云原生時代的應(yīng)用更加輕量化,在對外提供能保持一致的前提下,將與核心業(yè)務(wù)無關(guān)的能力剝離出去。這些能將以中間件的形式下沉到基礎(chǔ)設(shè)施中,成為云的一部分,從而加強(qiáng)楸善應(yīng)用的運(yùn)行環(huán)境,實現(xiàn)應(yīng)用輕量化。由此可以窺見云原生賦于中間件新的內(nèi)涵,即云原生中間件下沉到云基礎(chǔ)設(shè)施,保持功能不變的情況下與應(yīng)用解耦,在運(yùn)行時為應(yīng)劇態(tài)賦能,支撐上層應(yīng)用系統(tǒng)。云原生中間件是指在公有云、私有i和混合云等動態(tài)環(huán)境中,用于構(gòu)建和運(yùn)行可彈性擴(kuò)展的應(yīng)用,持續(xù)付部署業(yè)務(wù)生產(chǎn)系統(tǒng)的分布式中間件。云原生中間件能提供應(yīng)用管理、發(fā)布部署、運(yùn)維編排、監(jiān)控分析、容災(zāi)應(yīng)急等全生命周期管理的aaS能力,支撐云原生應(yīng)用的開發(fā)與管理,滿足經(jīng)典和云原生架構(gòu)的運(yùn)綠障需求。云原生中間件在應(yīng)用開發(fā)方面,能提供開發(fā)者體驗工具支撐、API開放能力、產(chǎn)品定制能力、微服務(wù)中間件平臺、服務(wù)市場應(yīng)用商店等,來支持云原生應(yīng)用的開發(fā)與管理。三、云原生應(yīng)用開發(fā)特點傳統(tǒng)企業(yè)應(yīng)用隨著業(yè)務(wù)越來越龐大會遇到各類問題。如在運(yùn)維方面,傳統(tǒng)集群運(yùn)維繁瑣,對于人員技能要求高導(dǎo)致運(yùn)維效率低;業(yè)務(wù)架構(gòu)從單體架構(gòu)向分布式架構(gòu)轉(zhuǎn)變時,架構(gòu)改造以及服務(wù)拆分帶來的技術(shù)學(xué)習(xí)難度高;自建IT基礎(chǔ)資源使整個應(yīng)用運(yùn)行成本極高,且大量計算資源無法被充分利用,資源利用率低。云原生的出現(xiàn)極大改善了企業(yè)業(yè)務(wù)上云的難度,其主要有以下優(yōu)勢:云生云長,充分利用云平臺服務(wù)優(yōu)勢。云原生應(yīng)用可以快速構(gòu)建并部署到平臺上,平臺提供了簡單快捷的擴(kuò)展能力并與硬件解耦,提供了更大的靈活性、彈性和跨云環(huán)境的可移植性。云原生將云計算作為競爭優(yōu)勢,原生云意味著將云目標(biāo)從IT成本節(jié)約轉(zhuǎn)向業(yè)務(wù)增長引擎。敏捷彈性,致力于高效高可用設(shè)計。在傳統(tǒng)的舊基礎(chǔ)設(shè)施故障時,服務(wù)是可能會受到影響的。在一個云原生的世界中,團(tuán)隊特別關(guān)注冠彈性和高可用進(jìn)行架構(gòu)設(shè)計。云原生焦點幫助開發(fā)人員和架構(gòu)師謝不受環(huán)境中故障影響的在線系統(tǒng),快速彈性的重建和保持系統(tǒng)可用。靈活擴(kuò)展,云原生應(yīng)用具備多云間擴(kuò)展的靈活性。公有云的廠商綁定現(xiàn)象一直為人詬病,但是使用支持云原生技術(shù)的云平臺,企業(yè)可以將構(gòu)建在任何(公有或私有)云上的應(yīng)用快速遷移,兼具不同云服務(wù)商的優(yōu)勢服務(wù)能力無需擔(dān)心鎖定3。云原生應(yīng)用的開發(fā),有如下特點:(一)容器與編排容器化是指將應(yīng)用整合到容器中并且運(yùn)行起來的這個過程。容器是為應(yīng)用而生的,能夠簡化應(yīng)用的構(gòu)建、部署和運(yùn)行過程。用戶將應(yīng)用及其所需的所有配置、依賴關(guān)系和環(huán)境變量打包成容器鏡像,使應(yīng)用不再受環(huán)境限制,可以在不同的環(huán)境下輕松移植。容器編排提供高性能可伸縮的容器應(yīng)用管理能力,為容器化應(yīng)用提供了全生命周期的管理,如應(yīng)用的發(fā)布與回滾、應(yīng)用配置管理等;容器編排可以根據(jù)應(yīng)用請求的資源量在容器集群中選擇合適的節(jié)點來調(diào)度資源,對于負(fù)載過高的業(yè)務(wù)進(jìn)行彈性擴(kuò)容;通過檢測容器集群中所有節(jié)點,自動隔離故障節(jié)點并將應(yīng)用遷移,使應(yīng)用系統(tǒng)具備較強(qiáng)的自愈能力,極大簡化了運(yùn)維管理的復(fù)雜程度。(二)微服務(wù)化微服務(wù)化是一種這種開發(fā)的風(fēng)格和方法,以開發(fā)一組小型服務(wù)的方式來開發(fā)一個獨立的應(yīng)用系統(tǒng)。其中每個小型服務(wù)都運(yùn)行在自己的進(jìn)行中,采用輕量的機(jī)制來相互通信。這些服務(wù)圍繞業(yè)務(wù)功能進(jìn)行構(gòu)建,并能通過全自動的部署機(jī)制來進(jìn)行獨立部署。這些微服務(wù)可以使用不同的語言來編寫,并且可以使用不同的數(shù)據(jù)存儲技術(shù)。服務(wù)之間是松耦合的,可以獨立地對每個服務(wù)進(jìn)行升級、部署、擴(kuò)展和重啟等操作,從而可以實現(xiàn)頻繁的迭代更新。微服務(wù)技術(shù)天生支持快速迭代、彈性擴(kuò)展的特點,使企業(yè)能夠在不確定性下提升發(fā)展速度及抗風(fēng)險能力。微服務(wù)化的應(yīng)用易于開發(fā)和維護(hù),一個微服務(wù)只關(guān)注一個特定的業(yè)務(wù)功能,業(yè)務(wù)清晰、代碼量較少,開發(fā)和維護(hù)單個微服務(wù)相對簡單。而整個應(yīng)用是由若干個微服務(wù)構(gòu)建而成的,所以整個應(yīng)用很容易維持在一個可控狀態(tài)。微服務(wù)技術(shù)棧不受限制。在微服務(wù)架構(gòu)中,可以結(jié)合項目業(yè)務(wù)及團(tuán)隊的特點,合理地選擇技術(shù)棧。例如某些服務(wù)可使用關(guān)系型數(shù)據(jù)庫MySQL;某些微服務(wù)有圖形計算的需求,可以使用Neo4j。微服務(wù)雖然有很多吸引人的地方,但它并不是銀彈。使用微服務(wù)架構(gòu)面臨很多挑戰(zhàn),如其運(yùn)維要求較高,因為更多的服務(wù)意味著更多的運(yùn)維投入。在單體架構(gòu)中,只需要保證一個應(yīng)用的正常運(yùn)行。而在微服務(wù)中,需要保證幾十甚至幾百個服務(wù)服務(wù)的正常運(yùn)行與協(xié)作,這給運(yùn)維帶來了很大的挑戰(zhàn)。對使用微服務(wù)構(gòu)建的分布式系統(tǒng)而言,系統(tǒng)容錯、網(wǎng)絡(luò)延遲、分布式事務(wù)等都會帶來巨大的挑戰(zhàn)。目前微服務(wù)架構(gòu)也在不斷演進(jìn),從初代侵入式架構(gòu),到非侵入式服務(wù)網(wǎng)格,再到當(dāng)前火熱的利用Serverless來架構(gòu)微服務(wù)的多運(yùn)行時微服務(wù)架構(gòu)(Muti-RuntimeMicroservices),微服務(wù)架構(gòu)能力更加全面,進(jìn)一步降低了云原生應(yīng)用的開發(fā)難度。計算存儲分離云原生業(yè)務(wù)應(yīng)用部分往往設(shè)計成無狀態(tài)的,相比起邏輯較簡單的存儲部分,運(yùn)行時出現(xiàn)錯誤概率較高,計算存儲分離的架構(gòu)使得計算部分的故障恢復(fù)變得簡單,從而使系統(tǒng)更加健壯。分離后的架構(gòu)職責(zé)清晰,從業(yè)務(wù)負(fù)載來看,將計算與存儲負(fù)載解耦,消除了存儲負(fù)載和計算負(fù)載對資源訴求的不平衡;從資源調(diào)度來看,計算資源、存儲資源獨立靈活的擴(kuò)展,通過共享存儲池,減少副本數(shù)實現(xiàn)降低成本,提高整個系統(tǒng)的資源利用率;在云環(huán)境中,集中云上存儲能更容易的提供數(shù)據(jù)保護(hù)、精簡配置、快照克隆、重刪壓縮、自動分層等企業(yè)級存儲服務(wù)。(四)服務(wù)網(wǎng)關(guān)服務(wù)網(wǎng)關(guān)是一個服務(wù)器,是系統(tǒng)的唯一入口,其對系統(tǒng)內(nèi)部架構(gòu)進(jìn)行封裝,為每個客戶端提供一個定制的API。服務(wù)網(wǎng)關(guān)核心要點是,所有的客戶端都通過統(tǒng)一的網(wǎng)關(guān)接入微服務(wù),并在網(wǎng)關(guān)層處理所有的非業(yè)務(wù)功能。服務(wù)網(wǎng)關(guān)負(fù)責(zé)請求轉(zhuǎn)發(fā)、合成和協(xié)議轉(zhuǎn)換。在云原生應(yīng)用中,服務(wù)網(wǎng)關(guān)有以下幾個優(yōu)點:與微服務(wù)注冊中心連接,實現(xiàn)服務(wù)無感知擴(kuò)縮;服務(wù)網(wǎng)關(guān)對于無法訪問的服務(wù),可以做到自動熔斷;方便的實現(xiàn)應(yīng)用的藍(lán)綠部署、金絲雀發(fā)布或A/B發(fā)布。(五)分布式事務(wù)模式傳統(tǒng)的企業(yè)開發(fā)系統(tǒng)往往是以單體應(yīng)用形式存在的,不會橫跨多個數(shù)據(jù)庫。云原生時代應(yīng)用的分布化使得企業(yè)無可避免的要面對分布式架構(gòu)帶來的數(shù)據(jù)一致性問題。由于大型云原生應(yīng)用往往是由一系列分布式應(yīng)用構(gòu)成的,開發(fā)語言和技術(shù)棧也相對比較繁雜。在微服務(wù)架構(gòu)盛行的今天,一個看起來簡單的功能,內(nèi)部可能需要調(diào)用多個服務(wù)并操作多個數(shù)據(jù)庫或分片來實現(xiàn),這樣必然帶來分布式事務(wù)問題。所以在進(jìn)行云原生應(yīng)用設(shè)計時需要考慮分布式事務(wù)模式。云原生的解決方案是將分布式事務(wù)問題從業(yè)務(wù)中剝離出來,作為一個獨立的技術(shù)面來單獨管理,以服務(wù)的形式給構(gòu)建在云上的應(yīng)用提供簡單、易用、高效的解決方案,使開發(fā)者專注于業(yè)務(wù)邏輯的設(shè)計和開發(fā),不需要考慮分布式事務(wù)的問題,從而加快項目交付、迭代的速度。(六)業(yè)務(wù)服務(wù)無狀態(tài)化狀態(tài)化的判斷是指兩個來自相同發(fā)起者的請求在服務(wù)器端是否具備上下文關(guān)系。無狀態(tài)服務(wù)是指該服務(wù)運(yùn)行的實例不會在本地存儲需要持久化的數(shù)據(jù),并且多個實例對于同一個請求響應(yīng)的結(jié)果是完全一致的。當(dāng)訪問該服務(wù)的請求到達(dá)服務(wù)一端后,負(fù)載均衡會隨機(jī)找到一個實例來完成該請求的響應(yīng)。這類服務(wù)的實例可能會因為一些原因停止或者重新創(chuàng)建(如擴(kuò)容時)。這時,這些停止的實例里的所有信息(除日志和監(jiān)控數(shù)據(jù)外)都將丟失(重啟容器即會丟失)。云原生應(yīng)用為了承載高并發(fā),往往拆分成多組進(jìn)程,每組進(jìn)程完成特定的工作,根據(jù)并發(fā)量用多個副本公共承擔(dān)流量壓力。如果狀態(tài)全部保存在本地,會給架構(gòu)的橫向擴(kuò)展帶來瓶頸。所以要將云原生應(yīng)用的業(yè)務(wù)邏輯的部分設(shè)計成無狀態(tài)的,這樣無狀態(tài)的部分可以很容易的橫向擴(kuò)展,在用戶分發(fā)的時候,可以很容易分發(fā)到新的進(jìn)程進(jìn)行處理,而狀態(tài)保存到后端。四、云原生中間件十要素中間件的使命是服務(wù)于上層應(yīng)用系統(tǒng),第三章節(jié)討論了云原生應(yīng)用開發(fā)的特點,為了設(shè)計出能更好支撐云原生應(yīng)用的中間件,我們從基礎(chǔ)資源、設(shè)計原則、運(yùn)行時狀態(tài)、呈現(xiàn)形態(tài)3個維度抽象出以下十個關(guān)鍵要素。(一)容器原生云生CloudNative架構(gòu)部署容器(Containerization)云原生中間件應(yīng)進(jìn)行云原生架構(gòu)設(shè)計,以容器化形式進(jìn)行服務(wù)部署。容器化部署可支持中間件服務(wù)快速啟動,可以靈活完成服務(wù)及資源的擴(kuò)縮容。容器隔離了用戶底層IaaS資源的差異,利用容器編排可輕松實現(xiàn)多實例(MultipleServiceInstances)部署;容器原生的中間件應(yīng)用程序和容器鏡像占用更少的資源,對于多容器部署的場景有更好的優(yōu)化策略,提升基礎(chǔ)資源利用率。(二)服務(wù)狀態(tài)有態(tài)(StatefU和無態(tài)(StatelesS服^分離在云原生時代,中間件架構(gòu)設(shè)計時需要定義服務(wù)的狀態(tài):有狀態(tài)部分和無狀態(tài)部分。無狀態(tài)部分主要伴隨業(yè)務(wù)邏輯的產(chǎn)生,如服務(wù)間通信、鏈路跟蹤等。無狀態(tài)服務(wù)是指該服務(wù)運(yùn)行的實例不會在本地存儲數(shù)據(jù),并且多個實例對于同一個請求響應(yīng)的結(jié)果是完全一致的有狀態(tài)部分是指該中間件可以產(chǎn)生并存儲數(shù)據(jù)并且在創(chuàng)建一個新的有狀態(tài)服務(wù)時,可以通過備份恢復(fù)這些數(shù)據(jù),以達(dá)到數(shù)據(jù)持久化的目的。所以將狀態(tài)保存在有狀態(tài)的中間件中,如分布式緩存、消息隊列等。無狀態(tài)的業(yè)務(wù)邏輯部分可以很容易的橫向擴(kuò)展,在用戶分發(fā)的時候,可以很容易分發(fā)到新的進(jìn)程進(jìn)行處理。在有狀態(tài)中間件設(shè)計時,應(yīng)考慮擴(kuò)容時狀態(tài)的遷移、復(fù)制、同步等機(jī)制,以更好的支撐無狀態(tài)的業(yè)務(wù)層。(三)組件模塊化組件模塊(ComponentModule)云原生中間件設(shè)計時應(yīng)考慮可插拔、松耦合、可動態(tài)編排的組件化特征。每個組件都是高度抽象的、自包含的、封閉的并和其它的件相有一定的邏輯隔離,使得不同的角色專注于其擅長領(lǐng)域的工作。開發(fā)人員可以通過組合模塊的形式調(diào)度涉及到中間件,快速支撐業(yè)務(wù),適用系統(tǒng)的運(yùn)行時特征。松耦合的中間件讓開發(fā)人員可以在處理每個中間件時都能夠獨立于其他中間件來工作。云原生中間件通過功能_的分離,對外提供統(tǒng)一的應(yīng)用程序編程接口API)供開發(fā)人員調(diào)用,使開發(fā)者可以專注于每項服務(wù)的核心功能,以提供細(xì)粒度的功能。(四)事件驅(qū)動采用事件^^架S^(Event-DrivenArchitecture)事件驅(qū)動架構(gòu)作為一種應(yīng)用間集成模式,天然適合云原生中間件的調(diào)度和集成。在事件驅(qū)動的體系結(jié)構(gòu)中,當(dāng)服務(wù)執(zhí)行其他中間件可能感興趣的工作時,該服務(wù)將生成一個事件。其他服務(wù)使用這些事俄而執(zhí)行由該事件觸發(fā)的任務(wù)。事件成為了可以被消費(fèi)的對象,而不僅僅是在函數(shù)間傳遞的臨時參數(shù),從而可以同時被多個中間件消費(fèi)。中間件不需要直接和生成事件的服務(wù)進(jìn)行交互,僅通過監(jiān)聽事件,觸發(fā)對應(yīng)的操作,從而降低了服務(wù)內(nèi)部的復(fù)雜度。事件驅(qū)動架構(gòu)具備以下優(yōu)點:異步:基于事件的架構(gòu)是異步的,沒有阻塞。這使得中間件可以在工作單元完成后自由地轉(zhuǎn)移到下一個任務(wù),而不用擔(dān)心之前發(fā)生了什么或者接下來會發(fā)生什么。松耦合:中間件之間不需要也不應(yīng)該)知道或依賴于其他服務(wù)。事件模型下的中間件可以獨立的、更容易的更新、測試和部署。易于擴(kuò)展:由于服務(wù)在事件驅(qū)動的體系結(jié)構(gòu)下解耦,而且服務(wù)通常只執(zhí)行一項任務(wù),因此跟蹤特定服務(wù)的瓶頸,并對該服務(wù)(且僅對該服務(wù))進(jìn)行擴(kuò)展變得很容易?;謴?fù)支持:帶有隊列的事件驅(qū)動架構(gòu)可以通過“重播”過去的事件來恢復(fù)丟失的工作。當(dāng)用戶需要恢復(fù)時,這對于防止數(shù)據(jù)丟失非常有用。(五)可觀測可觀測(Observab)e在由微服務(wù)和容器等技術(shù)形成的高度復(fù)雜的應(yīng)用系統(tǒng)運(yùn)行態(tài)中,可觀測性成為云原生中間件必須具備的能九可觀測性包含了監(jiān)控、告警、日志聚合、分布式跟蹤和依賴分析等部分,通過收集處理數(shù)據(jù)來定位問題,并簡化信息的訪問,實時深入的觀察整個應(yīng)用系統(tǒng)的健康狀態(tài),從業(yè)務(wù)資源計量等多個維度進(jìn)行度量。日志、指標(biāo)和請求跟蹤是可觀測性的基礎(chǔ)。從CNCF早期畢業(yè)的項目Prometheus就是一個用于觀測服務(wù)的云原生監(jiān)控工具。由此可見可觀測性在云原生技術(shù)中的重要性。Prometheus幾乎可以監(jiān)控所有內(nèi)容,它還整合了像Grafana這樣主流的可視化工具。韌性設(shè)計云生中間W備韌性(Resiliency)具備韌性設(shè)計的中間件具有高延時寬容、容錯和故障恢復(fù)邏輯??梢苑乐惯B鎖故障,允許快速失敗和快速恢復(fù),且具備較強(qiáng)的系統(tǒng)自愈能力和抵抗外部沖擊,為其上層運(yùn)行的應(yīng)用系統(tǒng)提供高性能、高容錯、高安全地支撐。設(shè)計具有韌性設(shè)計的中間件,必須從兩個方面考慮:在最初設(shè)計和規(guī)劃時,考慮中間件自身的在不同場景下的健壯性和魯棒性。針對系統(tǒng)在運(yùn)行過程中,可能出現(xiàn)導(dǎo)致程序崩潰的各種情況的應(yīng)對能力,如計算機(jī)軟件在輸入錯誤、磁盤故障、網(wǎng)絡(luò)過載或有意攻擊情況下,如何保障系統(tǒng)安全、穩(wěn)定運(yùn)行的措施、設(shè)計等。中間件的功能和特性在設(shè)計時,應(yīng)兼顧外圍應(yīng)用系統(tǒng)的適應(yīng)能力。因此,基于云原生架構(gòu)設(shè)計應(yīng)用的同時,選擇具有熔斷機(jī)制的微服務(wù)治理框架,將在整體上為云原生應(yīng)用提供系統(tǒng)魯棒性,包括超時、重試、限流、服務(wù)降級等方式,從而降低整個系統(tǒng)崩潰的風(fēng)險。彈性伸縮資源可展(scalabili),服^可t性(Elasticity)可擴(kuò)展指中間件具備資源按需動態(tài)伸縮能力,在保證業(yè)務(wù)連續(xù)性前提下,可以獨立于其他服務(wù)對于底層資源進(jìn)行擴(kuò)展或者收縮。隨著流量,需求和使用量的增加,中間件應(yīng)用應(yīng)具有彈性。彈性意味著當(dāng)資源根據(jù)需求按比例地減少或者增加時,系統(tǒng)的吞吐量將自動地向下或者向上縮放,從而滿足不同的需求。彈性是建立在可擴(kuò)展的基礎(chǔ)之上的,并通過添加自動的資源管理概念對其進(jìn)行了擴(kuò)充。動態(tài)部署月服務(wù)生命周期的動態(tài)部署(DynamicDeploymen)云原生中間件具備服務(wù)全生命周期的動態(tài)部署與發(fā)布能力,在完成開發(fā)構(gòu)建之后,能夠以多種策略進(jìn)行發(fā)布,如滾動發(fā)布、灰度發(fā)布、藍(lán)綠發(fā)布等;具備多種部署策略,如批量并發(fā)部署、任務(wù)定時部署、分階段部署等;具有版本控制功能,如版本追溯與回滾。由于云原生中間件具備獨立的運(yùn)行進(jìn)程,每個中間件也可以獨立動態(tài)的部署。當(dāng)某個中間件發(fā)生變更時無需編譯、部署整個應(yīng)用。如果應(yīng)用需要多個中間件來進(jìn)行支撐,那么多個中間件具備一系列可并行的發(fā)布流程,使得發(fā)布更加高效,同時降低對生產(chǎn)環(huán)境所造成的風(fēng)險,最終縮短應(yīng)用交付周期。統(tǒng)一響應(yīng)式與聲明式的API將^^應(yīng)式API與聲明式API統(tǒng)一(UnifiesReactiveandDeclarativeAPI)云原生中間件承擔(dān)了運(yùn)行時為應(yīng)用動態(tài)賦能的重任,應(yīng)用與中間件以API調(diào)用的形式進(jìn)行通信與控制。響應(yīng)式API描述為了達(dá)到某一個效果或者目標(biāo)所需要完成的指令;聲明式API描述的是應(yīng)用期望的目標(biāo)狀態(tài)發(fā)出的指令。根據(jù)云原生的理念,應(yīng)用無需知道下層中間件及資源的具體實現(xiàn)方式。聲明式API即可使中間件在調(diào)用時無需關(guān)注實現(xiàn)細(xì)節(jié),在應(yīng)用運(yùn)行時動態(tài)賦予。大多數(shù)開發(fā)人員都熟悉命令式編程模,并希望在云原生應(yīng)用開發(fā)時利用這種經(jīng)驗。同時,開發(fā)人員正在采用容器、事件驅(qū)動和微服務(wù)模型來進(jìn)行應(yīng)用的開發(fā),以構(gòu)建高度并發(fā)的應(yīng)用程序。云原生時代的中間件開發(fā),應(yīng)將兩種開發(fā)模型無縫地集成在同一個平臺中,從而在一個組織中產(chǎn)生強(qiáng)大的杠桿作用。(十)平臺化以云平臺(CloudPlanfo)m的形式提供服務(wù)將中間件功能下沉到基礎(chǔ)設(shè)施,以云平臺的形式對外輸出能力,提供中間件的接口供用戶按需調(diào)用,用戶無需關(guān)注中間件服務(wù)的下層資源調(diào)度與運(yùn)維,更加聚焦輕量級的業(yè)務(wù)應(yīng)用。五、云原生中間件典型服務(wù)(一)分布式消息隊列分布式消息系統(tǒng)是指的利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進(jìn)行分布式系統(tǒng)的集成的服務(wù)。消息隊列是在消息的傳輸過程中保存消息的容器。消息隊列管理器在將消息從它的源中繼到它的目標(biāo)時充當(dāng)中間人。隊列的主要目的是提供路由并保證消息的傳遞;如果發(fā)送消息時接收者不可用,消息隊列會保留消息,直到可以成功地傳遞它。通過提供消息傳遞和消息排隊模型,它可在分布環(huán)境下擴(kuò)展進(jìn)程間的通信,并支持多通訊協(xié)議、語言、應(yīng)用程序、硬件和軟件平臺,實現(xiàn)應(yīng)用系統(tǒng)之間的可靠異步消息通信能夠保障數(shù)據(jù)在復(fù)雜的網(wǎng)絡(luò)中高效、穩(wěn)定、安全、可靠的傳輸。當(dāng)前主流的消息隊列有RocketMQ、Kafka、Pulsar、RabitMQ等。RocketMQ是阿里巴巴研發(fā)的一款低延遲、高可靠、可伸縮、易于使用的消息中間件。RocketMQ由阿里巴巴貢獻(xiàn)給了Apache基金會并于2017年成為頂級開源項目。RocketMQ由Java語言開發(fā),采用發(fā)布一訂閱模式傳遞消息,具有高效靈活的水平擴(kuò)展能力和海量消息堆積能力,近年來逐漸獲得國內(nèi)外企業(yè)的認(rèn)可。Kafka是由LinkedIn公司開發(fā)的一個高吞吐量的分布式消息系統(tǒng),開發(fā)它的目標(biāo)是為處理實時數(shù)據(jù)提供一個統(tǒng)一、高通量、低等待的平臺。Kafka最大的特性就是可以實時地處理大量數(shù)據(jù)以滿足各種需求場景。Kafka由Scala語言開發(fā),其客戶端在主流的編程語言里面都有對應(yīng)的支持,如Scala、C++、Python、Java、GO、PHP等。Kafka由LinkedIn于2010年貢獻(xiàn)給了Apache基金會并成為頂級開源項目。Pulsar是由Yahoo開發(fā)的Pub-Sub模式的分布式消息平臺,在2016年開源,并于2018年9月畢業(yè)成為Apache基金會的頂級項目。其擁有靈活的消息模型和直觀的客戶端API,是一種用于服務(wù)器到服務(wù)器消息傳遞的多租戶高性能解決方案。RabbitMQ是一個基于高級消息隊列協(xié)議實現(xiàn)的消息系統(tǒng),其服務(wù)器端用Erlang語言編寫,支持多種客戶端,如Python、.NET、PHP、Java、JMS等。RabbitMQ在易用性、擴(kuò)展性、高可用性等方面表現(xiàn)優(yōu)良4。(一) 分布式事務(wù)系統(tǒng)云原生應(yīng)用對大規(guī)模的事務(wù)處理有著較為苛刻的需求。事務(wù)處理監(jiān)控界于Client和Server之間,進(jìn)行事務(wù)管理與協(xié)調(diào)、負(fù)載平衡、失敗恢復(fù)等,以提高系統(tǒng)的整體性能。分布式事務(wù)系統(tǒng)中間件適用于聯(lián)機(jī)交易處理系統(tǒng),主要功能是管理分布于不同計算機(jī)上的數(shù)據(jù)的一致性,保障系統(tǒng)處理能力的效率與均衡負(fù)載。業(yè)界著名的CAP理論告訴我們,在設(shè)計和實現(xiàn)一個分布式系統(tǒng)時,需要將數(shù)據(jù)一致性、系統(tǒng)可用性和分區(qū)容忍性放在一起考慮。而在布式系統(tǒng)中,一致性(Consistency)、可用性(Availability)和分區(qū)容忍性(PartitionTolerance)這3個要素最多只能同時滿足兩個。一致性是指分布式環(huán)境下多個節(jié)點的數(shù)據(jù)是否強(qiáng)一致??捎眯允侵阜植际椒?wù)能一直保證可用狀態(tài)。當(dāng)用戶發(fā)出一個請求后,服務(wù)能在有限計間內(nèi)返回結(jié)果。分區(qū)容忍性特指對網(wǎng)絡(luò)分區(qū)的容忍性。分布式事務(wù)4鄭立,陳屹力,劉如明,等基于開源的消息隊列云服務(wù)研超].信息通信技術(shù)與政策2020(5):52-56.中間件的目的是保障分布式存儲中數(shù)據(jù)一致性,而跨庫事務(wù)會遇到各種不可控制的問題,如個別節(jié)點宕機(jī)。目前主流的分布式事務(wù)解決方案有:a) TCC補(bǔ)償型事務(wù)解決方案TCC指的是Try(嘗試)、Confirm(確認(rèn))、Cancel(取消),其核心思想是:針對每個操作,都要注冊一個與其對應(yīng)的確認(rèn)和補(bǔ)償(撤銷)操作。它分為三個階段:Try階段主要是對業(yè)務(wù)系統(tǒng)做檢測及資源預(yù)留Confirm階段主要是對業(yè)務(wù)系統(tǒng)做確認(rèn)提交,Try階段執(zhí)行成功并開始執(zhí)行Confirm階段時,默認(rèn)Confirm階段是不會出錯的。即:只要Try成功,Confirm—定成功。Cancel階段主要是在業(yè)務(wù)執(zhí)行錯誤,需要回滾的狀態(tài)下執(zhí)行的業(yè)務(wù)取消,預(yù)留資源釋放。b) 兩階段提交兩階段提交(Two-phaseCommit,2PC),通過引入?yún)f(xié)調(diào)者來協(xié)調(diào)參與者的行為,并最終決定這些參與者是否要真正執(zhí)行事務(wù)。c) 本地消息表本地消息表與業(yè)務(wù)數(shù)據(jù)表處于同一個數(shù)據(jù)庫中,這樣就能利用本地事務(wù)來保證在對這兩個表的操作滿足事務(wù)特性,并且使用了消息隊列來保證最終一致性。在分布式事務(wù)操作的一方完成寫業(yè)務(wù)數(shù)據(jù)的操作之后向本地消息表發(fā)送一個消息,本地事務(wù)能保證這個消息一定會被寫入本地消息表中。之后將本地消息表中的消息轉(zhuǎn)發(fā)到Kafka等消息隊列中,如果轉(zhuǎn)發(fā)成功則將消息從本地消息表中刪除,否則繼續(xù)重新轉(zhuǎn)發(fā)。在分布式事務(wù)操作的另一方從消息隊列中讀取一個消息,并執(zhí)行消息中的操作。(三)分布式配置服務(wù)隨著業(yè)務(wù)的發(fā)展,微服務(wù)的數(shù)量、程序的配置日益增多(各種微服務(wù)、服務(wù)器地址、參數(shù)等),傳統(tǒng)的配置文件方式和數(shù)據(jù)庫的方式已無法滿足開發(fā)人員對配置管理的要求,如配置修改后實時生效、灰度發(fā)布、分環(huán)境管理配置、完善的權(quán)限審核機(jī)制等。因此,需要配置中心來統(tǒng)一管理配置,把業(yè)務(wù)開發(fā)者從復(fù)雜以及繁瑣的配置中解脫出來,只需專注于業(yè)務(wù)代碼本身,從而能夠顯著提升開發(fā)以及運(yùn)維效率。同時將配置和發(fā)布包解藕也進(jìn)一步提升發(fā)布的成功率,并為運(yùn)維的細(xì)力度管控、應(yīng)急處理等提供強(qiáng)有力的支持。在云原生環(huán)境中,同類型的服務(wù)往往會部署到很多個實例上。分布式配置管理服務(wù)可以輕松地管理成千上百個服務(wù)實例的配置問題。分布式配置服務(wù)有以下特點:權(quán)限控制。為開發(fā)人員賦予不同的配置權(quán)限。審計日志。所有的修改需要記錄操作日志,方便問題溯源。環(huán)境管理。對開發(fā)、測試、生成環(huán)境下的配置進(jìn)行隔離。配置回滾。當(dāng)發(fā)現(xiàn)配置錯誤,或者在該配置下程序發(fā)生異??梢粤⒓椿貪L到之前的版本?;叶劝l(fā)布。通過隨機(jī)修改部分應(yīng)用的配置進(jìn)行灰度發(fā)布,當(dāng)測試正常后在推送到所有的應(yīng)用。高可用。在配置服務(wù)出現(xiàn)問題時,應(yīng)用可以使用本地緩存配置。(四)API網(wǎng)關(guān)API網(wǎng)關(guān)將各系統(tǒng)對外提供服務(wù)的微服務(wù)聚合起來,所有要調(diào)用這些服務(wù)的請求都需要通過API網(wǎng)關(guān)進(jìn)行,基于這種方式網(wǎng)關(guān)可以對API進(jìn)行統(tǒng)一管控,例如:認(rèn)證、鑒權(quán)、流量控制、協(xié)議轉(zhuǎn)換、監(jiān)控等等。API網(wǎng)關(guān)的流行得益于近幾年微服務(wù)架構(gòu)的興起,原本一個龐大的業(yè)務(wù)系統(tǒng)被拆分成許多粒度更小的系統(tǒng)進(jìn)行獨立部署和維護(hù),這種模式勢必會帶來更多的跨系統(tǒng)交互,企業(yè)API的規(guī)模也會成倍增加,API網(wǎng)關(guān)就逐漸成為了微服務(wù)架構(gòu)的標(biāo)配組件。其主要功能如下:提供防攻擊、防重放、請求加密、身份認(rèn)證、權(quán)限管理、流量控制等多重手段保證API安全,降低API開放風(fēng)險。提供API定義、測試、發(fā)布、下線等全生命周期管理,并生成SDK、API說明文檔,提升API管理、迭代的效率。提供便捷的監(jiān)控、報警、分析、API市場等運(yùn)維、運(yùn)營工具,降低API運(yùn)營、維護(hù)成本。使用API網(wǎng)關(guān)的最大優(yōu)點是,它封裝了應(yīng)用程序的內(nèi)部結(jié)構(gòu)。餐端只需要同網(wǎng)關(guān)交互,而不必調(diào)用特定的服務(wù)API網(wǎng)關(guān)為每一類客戶端提供了特定的API。這減少了客戶端與應(yīng)用程序間的交互次數(shù),還簡化了客戶端代碼。(五)分布式緩存隨著互聯(lián)網(wǎng)的飛速發(fā)展,各行各業(yè)對互聯(lián)網(wǎng)服務(wù)的要求也越來越高,互聯(lián)網(wǎng)系統(tǒng)很多常見的存儲類場景都面臨著容量和穩(wěn)定性風(fēng)險。此時,本地緩存已無法滿足需要,分布式緩存由于其高性能、高可用性等優(yōu)點迅速許多公司接受并使用。分布式緩存是傳統(tǒng)緩存概念的擴(kuò)展,其中數(shù)據(jù)被放置在本地的臨時存儲中以便快速檢索。這意味著不同的機(jī)器或服務(wù)器將其緩存內(nèi)存的一部分貢獻(xiàn)到可由多個節(jié)點和虛擬機(jī)訪問的大型池中。分布式緩存由一個服務(wù)端實現(xiàn)管理和控制,有多個客戶端節(jié)點存儲數(shù)據(jù),可以進(jìn)一步提高數(shù)據(jù)的讀取速率。分布式緩存能夠高性能讀取數(shù)據(jù)、能夠動態(tài)地擴(kuò)展緩存節(jié)點、能夠自動發(fā)現(xiàn)和切換故

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論