【行業(yè)觀點(diǎn)】如何為微服務(wù)選擇正確的數(shù)據(jù)庫(kù)

微服務(wù)成為基礎(chǔ)設(shè)施建設(shè)重點(diǎn)的原因在于它提供了服務(wù)分離、數(shù)據(jù)自主存儲(chǔ)、小型化開(kāi)發(fā)、測(cè)試可設(shè)置等優(yōu)勢(shì),這有助于新應(yīng)用程序更快地上市或迭代更新。此外,容器和容器編排工具也增加了對(duì)微服務(wù)的使用頻率。

微服務(wù)的核心摒棄了傳統(tǒng)架構(gòu),這使得它在服務(wù)之間共享一個(gè)單一的數(shù)據(jù)庫(kù)。相比于傳統(tǒng)的服務(wù)架構(gòu),微服務(wù)架構(gòu)的每個(gè)微服務(wù)單元都具有獨(dú)立、自主、專(zhuān)用的數(shù)據(jù)存儲(chǔ)單元。

以一個(gè)電子商務(wù)解決方案為例,如圖所示,該方案采用的服務(wù)包括:應(yīng)用服務(wù)器、內(nèi)容緩存、會(huì)話存儲(chǔ)、產(chǎn)品目錄、搜索發(fā)現(xiàn)、訂單處理、訂單跟蹤和數(shù)據(jù)分析等等?,F(xiàn)代電子商務(wù)解決方案不是使用大型單個(gè)數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)所有的操作和交易數(shù)據(jù),而是使用類(lèi)似于圖1所示的微服務(wù)架構(gòu),其中每個(gè)服務(wù)都有自己的數(shù)據(jù)庫(kù)。

如何為微服務(wù)選擇數(shù)據(jù)存儲(chǔ)方式

“如何選擇正確的數(shù)據(jù)存儲(chǔ)方式”是設(shè)計(jì)微服務(wù)時(shí)最重要的問(wèn)題之一。選擇正確數(shù)據(jù)存儲(chǔ)方式的第一步是確定微服務(wù)數(shù)據(jù)的性質(zhì)。數(shù)據(jù)性質(zhì)大致可以分為以下幾類(lèi):

1.短暫數(shù)據(jù):緩存服務(wù)器就是短暫數(shù)據(jù)存儲(chǔ)的一個(gè)很好的例子,它是一個(gè)臨時(shí)數(shù)據(jù)存儲(chǔ),其目的是通過(guò)實(shí)時(shí)提供信息來(lái)改善用戶體驗(yàn)。

微服務(wù)通常被調(diào)整為高性能,并且操作讀取頻繁,它沒(méi)有耐久性要求,因?yàn)樗淮鎯?chǔ)數(shù)據(jù)的主副本,但它又仍然必須保持高度可用,因?yàn)槌霈F(xiàn)故障可能會(huì)導(dǎo)致用戶體驗(yàn)不佳,從而影響收益。另外,故障也可能會(huì)導(dǎo)致“緩存沖突”問(wèn)題,因?yàn)閿?shù)據(jù)庫(kù)爬網(wǎng)速度較慢,它們無(wú)法處理高頻的訪問(wèn),反而這可能導(dǎo)致完全可以避免的故障出現(xiàn)。

2.瞬態(tài)數(shù)據(jù):日志、消息和信號(hào)等數(shù)據(jù)通常以高容量和高速率實(shí)現(xiàn)傳輸。數(shù)據(jù)攝取服務(wù)通常在將其傳遞到適當(dāng)?shù)哪康牡刂疤幚碓撔畔ⅰ?/p>

像這樣的數(shù)據(jù)存儲(chǔ)方式就需要支持高速寫(xiě)入。同時(shí),支持時(shí)間序列數(shù)據(jù)和JSON的內(nèi)置功能也是一個(gè)額外的好處。對(duì)瞬態(tài)數(shù)據(jù)的耐久性要求會(huì)高于短暫數(shù)據(jù),而低于交易數(shù)據(jù)。

3.操作數(shù)據(jù):從用戶會(huì)話收集的信息(如用戶個(gè)人資料,購(gòu)物車(chē)內(nèi)容等)被視為操作數(shù)據(jù)。微服務(wù)器為用戶提供更好的體驗(yàn)并進(jìn)行實(shí)時(shí)反饋。即使存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)不是永久的,但架構(gòu)也必須最大程度地保留數(shù)據(jù)以實(shí)現(xiàn)業(yè)務(wù)連續(xù)性。這樣就對(duì)于操作數(shù)據(jù)的持久性、一致性和可用性要求很高。一般而言,操作數(shù)據(jù)被放在特定的數(shù)據(jù)模型中,如JSON、圖形、關(guān)系、鍵值等

4.交易數(shù)據(jù):從類(lèi)似于付款處理和訂單處理的交易收集到數(shù)據(jù)必須作為永久記錄,存儲(chǔ)在能夠支持強(qiáng)ACID控制的數(shù)據(jù)庫(kù)中。

在圖1所示的電子商務(wù)應(yīng)用中,我們可以對(duì)微服務(wù)及其各自的數(shù)據(jù)存儲(chǔ)方式進(jìn)行分類(lèi),如下表所示:

一致性和耐用性的可調(diào)度 為了達(dá)到優(yōu)化微服務(wù)以獲得高性能和數(shù)據(jù)耐久性要求,務(wù)必要確認(rèn)所選數(shù)據(jù)庫(kù)能夠?yàn)楫?dāng)前數(shù)據(jù)類(lèi)別提供適當(dāng)?shù)目烧{(diào)參數(shù)。對(duì)于高性能而言,純內(nèi)存的數(shù)據(jù)庫(kù)是理想的選擇。對(duì)于數(shù)據(jù)耐久性而言,讓數(shù)據(jù)復(fù)制以及磁盤(pán)閃存耐久是最好的解決辦法。例如,電子商務(wù)示例中的緩存服務(wù)器必須針對(duì)低延遲、高速讀取操作進(jìn)行優(yōu)化?;跀?shù)據(jù)的性質(zhì),數(shù)據(jù)庫(kù)不需要承受耐久性考驗(yàn)。另一方面,訂單跟蹤微服務(wù)重點(diǎn)是保持?jǐn)?shù)據(jù)清晰和一致。

下表顯示了如何基于對(duì)數(shù)據(jù)的原則性、一致性、隔離性和耐久性的要求來(lái)配置和調(diào)整每個(gè)微服務(wù)器的數(shù)據(jù)存儲(chǔ)方式。

最后但也同樣重要的是評(píng)估數(shù)據(jù)庫(kù)可用的部署方法和編排選項(xiàng),以確保能夠讓所有微服務(wù)在同一種環(huán)境中被部署和管理。以下是要查找的一些關(guān)鍵標(biāo)準(zhǔn):

1.作為容器的可用性:由于微服務(wù)大多都部署為由編排工具所管理的容器,所以當(dāng)使用數(shù)據(jù)庫(kù)作為容器時(shí),可以獲得很好的運(yùn)營(yíng)效率

2.云端/本地化選擇:數(shù)據(jù)庫(kù)是否可用于云端或本地,微服務(wù)器部署在哪里? 可用于兩個(gè)部署選項(xiàng)的數(shù)據(jù)庫(kù)為此提供了更大的靈活性。

3.鎖定供應(yīng)商:組織有時(shí)會(huì)切換編排工具,因此確保數(shù)據(jù)庫(kù)支持所有流行的編排工具對(duì)鎖定供應(yīng)商非常有幫助。

關(guān)于Ghostcloud

Ghostcloud(中文名:精靈云)坐落于成都天府軟件園,是成都高新區(qū)重點(diǎn)扶持企業(yè),國(guó)內(nèi)首批從事容器虛擬化研發(fā)的企業(yè),是西南地區(qū)唯一一家基于Docker的云計(jì)算服務(wù)商,為企業(yè)級(jí)行業(yè)客戶提供針對(duì)互聯(lián)網(wǎng)化、私有云管理平臺(tái)、大數(shù)據(jù)業(yè)務(wù)基礎(chǔ)架構(gòu)的平臺(tái)服務(wù)。

Ghostcloud因容器技術(shù)而生,以最新容器技術(shù)Docker為基礎(chǔ),為適應(yīng)不同行業(yè)客戶需求,全自主研發(fā)了一套調(diào)度引擎框架Newben,且全方位適配Kubernetes主流開(kāi)源調(diào)度引擎,也是國(guó)內(nèi)率先實(shí)現(xiàn)雙調(diào)度引擎的企業(yè),是一流的企業(yè)級(jí)容器云服務(wù)專(zhuān)家。Ghostcloud推出了企業(yè)級(jí)容器云PaaS/CaaS平臺(tái),命名為EcOS(EnterpriseContainer

Operation System)。Ghostcloud將EcOS平臺(tái)與微服務(wù)/DevOps相融合,運(yùn)用至企業(yè)IT系統(tǒng)的全生命周期的開(kāi)發(fā)、測(cè)試、運(yùn)維及發(fā)布流程中,致力于為多個(gè)領(lǐng)域企業(yè)向“互聯(lián)網(wǎng)+”轉(zhuǎn)型提供針對(duì)互聯(lián)網(wǎng)化、私有云管理平臺(tái)、大數(shù)據(jù)業(yè)務(wù)基礎(chǔ)架構(gòu)的平臺(tái)服務(wù),幫助企業(yè)級(jí)客戶降低成本、提升效率、簡(jiǎn)化運(yùn)維及產(chǎn)品部署,并提升系統(tǒng)的可靠性和安全性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容