精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

探討篇(四):分布式數(shù)據(jù)訪問(wèn)解決方案

京東云 ? 來(lái)源:jf_75140285 ? 作者:jf_75140285 ? 2024-07-12 15:19 ? 次閱讀

背景

如果數(shù)據(jù)在同一個(gè)服務(wù)的同一個(gè)數(shù)據(jù)庫(kù),通過(guò)SQL即可查詢相對(duì)比較簡(jiǎn)單,但當(dāng)數(shù)據(jù)被分布到不同服務(wù)不同的數(shù)據(jù)庫(kù)中時(shí),訪問(wèn)組合數(shù)據(jù)的操作就變的比較困難。針對(duì)這個(gè)問(wèn)題,本文描述了服務(wù)讀取不同服務(wù)的數(shù)據(jù)庫(kù)的幾種方法:服務(wù)間通信模式、數(shù)據(jù)緩存模式、數(shù)據(jù)復(fù)制模式、數(shù)據(jù)共享模式

本文的觀點(diǎn)源自我在日常學(xué)習(xí)與實(shí)踐過(guò)程中的思考,尚處于不斷探索和驗(yàn)證的階段。希望能“拋磚引玉”,激發(fā)更多的討論與交流。讓我們共同進(jìn)步,在探討與實(shí)證中尋求真知。

一、服務(wù)通信模式

如果一個(gè)服務(wù)需要讀取它無(wú)法直接訪問(wèn)的數(shù)據(jù)庫(kù),只需要使用遠(yuǎn)程調(diào)用比如RPC協(xié)議訪問(wèn)另外一個(gè)服務(wù)即可,這也是很多團(tuán)隊(duì)采用的一種方式,如下圖:

wKgaomaQ2ReAItREAAG9hVSUrGw504.png

這看起來(lái)很簡(jiǎn)單,但技術(shù)充滿挑戰(zhàn)問(wèn)題

?首先是數(shù)據(jù)網(wǎng)絡(luò)延遲導(dǎo)致服務(wù)A性能下降。

?服務(wù)之間的耦合,為了滿足服務(wù)A的訪問(wèn)量,B服務(wù)必須隨著A服務(wù)的流量規(guī)模變化而變化。

服務(wù)通信模式優(yōu)缺點(diǎn)
優(yōu)點(diǎn) 1、沒(méi)有數(shù)據(jù)量問(wèn)題
缺點(diǎn) 1、網(wǎng)絡(luò)延遲導(dǎo)致性能問(wèn)題,很常見(jiàn)的TP99跳點(diǎn),抖動(dòng)現(xiàn)象 2、可伸縮性和吞吐量問(wèn)題 3、可用性問(wèn)題


二、數(shù)據(jù)緩存模式

在上面服務(wù)通信的基礎(chǔ)上加上緩存,這是很多團(tuán)隊(duì)使用的第二種方式。數(shù)據(jù)保存在每個(gè)服務(wù)的內(nèi)存中并持續(xù)同步,因此服務(wù)擁有完全相同的數(shù)據(jù)。緩存又分為本地緩存+分布式緩存的組合關(guān)系。

1.單機(jī)本地緩存,每個(gè)服務(wù)都包含自己的數(shù)據(jù)。這種模式對(duì)應(yīng)服務(wù)之間無(wú)法共享,比如服務(wù)啟動(dòng)加載數(shù)據(jù)到本地緩存。

2.分布式緩存:數(shù)據(jù)服務(wù)之間共享。但這種模式不是有效的復(fù)制緩存模式,因?yàn)樗荒芙鉀Q服務(wù)間通信模式下存在的容錯(cuò)性問(wèn)題,獲取數(shù)據(jù)從服務(wù)調(diào)用變成了緩存服務(wù)。其次由于緩存數(shù)據(jù)是中心化及共享的,打破數(shù)據(jù)所有權(quán),并且可能導(dǎo)致緩存和數(shù)據(jù)庫(kù)數(shù)據(jù)不一致。

wKgZomaQ2RiAPDpKAAHZNG-HlPE470.png

以下是每種實(shí)現(xiàn)方式優(yōu)缺點(diǎn)如下:

實(shí)現(xiàn)方式一:本地緩存/分布式緩存+RPC遠(yuǎn)程調(diào)用

實(shí)現(xiàn)方式一:緩存前置(本地緩存/分布式緩存+RPC遠(yuǎn)程調(diào)用),它的核心思想是利用緩存來(lái)減少對(duì)遠(yuǎn)程服務(wù)的調(diào)用次數(shù),從而提高系統(tǒng)的性能和響應(yīng)速度
優(yōu)點(diǎn) 1、減少延遲:通過(guò)從本地或分布式緩存中讀取數(shù)據(jù),可以顯著減少對(duì)遠(yuǎn)程服務(wù)的調(diào)用次數(shù),從而降低響應(yīng)時(shí)間和提高用戶體驗(yàn) 2、減輕遠(yuǎn)程服務(wù)壓力:緩存可以吸收大量讀請(qǐng)求,減少遠(yuǎn)程服務(wù)的負(fù)載,特別是在高流量場(chǎng)景下。
缺點(diǎn) 1、數(shù)據(jù)一致性問(wèn)題:緩存中的數(shù)據(jù)可能會(huì)過(guò)時(shí),如果遠(yuǎn)程服務(wù)的數(shù)據(jù)發(fā)生變化,緩存中的數(shù)據(jù)需要及時(shí)更新,否則可能會(huì)導(dǎo)致數(shù)據(jù)不一致。 2、復(fù)雜性增加:緩存策略的引入增加了系統(tǒng)的復(fù)雜性,需要考慮緩存更新、失效策略、數(shù)據(jù)一致性保證等問(wèn)題。 3、資源消耗:緩存需要占用額外的存儲(chǔ)空間,如果數(shù)據(jù)量很大,緩存可能會(huì)消耗大量?jī)?nèi)存或磁盤(pán)空間。

實(shí)現(xiàn)方式二:通過(guò)RPC服務(wù)通訊同步推送數(shù)據(jù)+本地緩存

實(shí)現(xiàn)方式二:通過(guò)RPC服務(wù)通訊同步推送數(shù)據(jù)+本地緩存
優(yōu)點(diǎn) 1)實(shí)時(shí)性:服務(wù)B在數(shù)據(jù)發(fā)生變化時(shí)立即推送,服務(wù)A可以實(shí)時(shí)獲取最新數(shù)據(jù)。 2)資源利用率高:只有在數(shù)據(jù)發(fā)生變化時(shí)才會(huì)進(jìn)行通信,減少了無(wú)謂的資源消耗。 3)減少輪詢壓力:避免了定時(shí)任務(wù)輪詢對(duì)服務(wù)器的壓力。
缺點(diǎn) 1)復(fù)雜性:需要在服務(wù)B中實(shí)現(xiàn)推送邏輯,增加了系統(tǒng)的復(fù)雜性。 2)維護(hù)成本:推送機(jī)制需要額外的維護(hù),包括失敗重試、消息順序保證等

實(shí)現(xiàn)方式三:通過(guò)定時(shí)任務(wù)worker,服務(wù)A通過(guò)RPC調(diào)用服務(wù)B拉數(shù)據(jù)

實(shí)現(xiàn)方式三:通過(guò)定時(shí)任務(wù)worker,服務(wù)A通過(guò)RPC調(diào)用服務(wù)B拉數(shù)據(jù)
優(yōu)點(diǎn) 1)無(wú)需變更現(xiàn)有服務(wù):不需要修改服務(wù)B的代碼,只需在服務(wù)A中添加定時(shí)任務(wù)。
缺點(diǎn) 1)性能開(kāi)銷:頻繁的定時(shí)任務(wù)可能會(huì)對(duì)服務(wù)A和服務(wù)B的性能產(chǎn)生一定影響。 2)延遲性:數(shù)據(jù)更新可能存在延遲,特別是如果定時(shí)任務(wù)的頻率不高。 3)資源占用:即使沒(méi)有數(shù)據(jù)更新,定時(shí)任務(wù)也會(huì)占用系統(tǒng)資源。 4)靈活性差:如果數(shù)據(jù)更新頻率變化較大,固定周期的定時(shí)任務(wù)可能不夠靈活

實(shí)現(xiàn)方式四:通過(guò)異步MQ獲取數(shù)據(jù)

實(shí)現(xiàn)方式四:通過(guò)異步MQ獲取數(shù)據(jù)
優(yōu)點(diǎn) 1)異步、削峰、解耦:服務(wù)B在數(shù)據(jù)發(fā)生變化時(shí)只需發(fā)送消息,不需要等待服務(wù)A的處理結(jié)果。 2)容錯(cuò)性:MQ通常提供消息持久化機(jī)制,即使服務(wù)A暫時(shí)不可用,消息也不會(huì)丟失。
缺點(diǎn) 1)復(fù)雜性:引入MQ增加了系統(tǒng)的復(fù)雜性,需要考慮消息的順序性、消息丟失、重復(fù)消費(fèi)等問(wèn)題。 2)延遲:雖然MQ可以提供實(shí)時(shí)消息傳遞,但在高并發(fā)或者網(wǎng)絡(luò)問(wèn)題的情況下,仍然可能存在延遲。

緩存模式優(yōu)缺點(diǎn):

緩存模式優(yōu)缺點(diǎn)
優(yōu)點(diǎn) 1、提高了數(shù)據(jù)訪問(wèn)性能 2、沒(méi)有可伸縮性和吞吐量問(wèn)題 3、良好容錯(cuò)性
缺點(diǎn) 1、大數(shù)據(jù)量不友好(比如200M),可行性降低 2、高頻更新不友好,無(wú)法保持完全同步,對(duì)于相對(duì)靜態(tài)數(shù)據(jù),比較合適 3、緩存數(shù)據(jù)和服務(wù)啟動(dòng)的服務(wù)依賴關(guān)系。常見(jiàn)機(jī)器擴(kuò)容N臺(tái)機(jī)器,N臺(tái)同時(shí)通過(guò)RPC訪問(wèn)服務(wù)B,導(dǎo)致服務(wù)B流量暴漲,并且寫(xiě)分布式緩存流量暴漲(N臺(tái)*每臺(tái)緩存大小) 4、適合一致性較弱的場(chǎng)景,緩存一致性問(wèn)題,可能導(dǎo)致數(shù)據(jù)陳舊

三、數(shù)據(jù)復(fù)制模式

在數(shù)據(jù)復(fù)制模式中,表之間會(huì)進(jìn)行數(shù)據(jù)復(fù)制,也就是在數(shù)據(jù)庫(kù)A冗余數(shù)據(jù)庫(kù)B數(shù)據(jù)。這樣可以確保服務(wù)A直接訪問(wèn)數(shù)據(jù)庫(kù)A獲取到數(shù)據(jù)庫(kù)B的數(shù)據(jù)。可以通過(guò)很多種實(shí)現(xiàn)方式:

wKgaomaQ2RmAeyD2AAG668ZontM837.png

但這同樣存在如下問(wèn)題:如何管理數(shù)據(jù)所有權(quán)?到處都有這種數(shù)據(jù),數(shù)據(jù)一致性問(wèn)題

實(shí)現(xiàn)方式四:binlog同步,需要注意binlog數(shù)據(jù)量
優(yōu)點(diǎn) 1)實(shí)時(shí)性:Binlog可以捕獲數(shù)據(jù)庫(kù)的實(shí)時(shí)變化,使得數(shù)據(jù)同步具有較低的延遲。
缺點(diǎn) 1)性能影響:雖然Binlog的開(kāi)銷相對(duì)較小,但在高并發(fā)寫(xiě)入的場(chǎng)景下,Binlog的生成和處理仍然會(huì)對(duì)數(shù)據(jù)庫(kù)性能產(chǎn)生一定影響。 2)依賴數(shù)據(jù)庫(kù):這種同步方式依賴于MySQL的Binlog功能

這種方案改善了上面服務(wù)通信的性能,容錯(cuò)性,可伸縮性問(wèn)題。某些場(chǎng)景可用,比如聚合,報(bào)表或者其他不適合高性能需求,高容錯(cuò)性的時(shí)候

數(shù)據(jù)復(fù)制模式優(yōu)缺點(diǎn)
優(yōu)點(diǎn) 1、良好的數(shù)據(jù)訪問(wèn)性能 2、沒(méi)有可伸縮性和吞吐量問(wèn)題 3、沒(méi)有容錯(cuò)性問(wèn)題 4、沒(méi)有服務(wù)直接依賴
缺點(diǎn) 1、數(shù)據(jù)一致性問(wèn)題 2、數(shù)據(jù)歸屬權(quán)問(wèn)題 3、需要數(shù)據(jù)同步

四、數(shù)據(jù)共享模式

如果上面的3種方式都不行,那可以用兜底方式,用創(chuàng)建數(shù)據(jù)領(lǐng)域,把數(shù)據(jù)組合到共享的數(shù)據(jù)庫(kù),讓服務(wù)A和服務(wù)B都能訪問(wèn)。

wKgZomaQ2RqANnYWAADaFU5fLZ4143.png

服務(wù)之間完全解耦,解決了可用性依賴,響應(yīng)性,吞吐量和可伸縮性問(wèn)題

數(shù)據(jù)庫(kù)共享模式優(yōu)缺點(diǎn)
優(yōu)點(diǎn) 1、良好的數(shù)據(jù)訪問(wèn)性能 2、沒(méi)有可伸縮性和吞吐量問(wèn)題 3、良好容錯(cuò)性 4、無(wú)服務(wù)依賴 5、數(shù)據(jù)保持一致
缺點(diǎn) 1、數(shù)據(jù)所有權(quán)治理 2、數(shù)據(jù)訪問(wèn)安全

總結(jié)

1.通過(guò)本文的探討,大家可以更全面地了解分布式數(shù)據(jù)訪問(wèn)的挑戰(zhàn)和可能的解決方案

2.每種模式都有其優(yōu)勢(shì)和不足以及應(yīng)用場(chǎng)景,本文旨在通過(guò)對(duì)比分析,為實(shí)際應(yīng)用中的選擇提供指導(dǎo)。

3.如果以上文案有問(wèn)題或者還有更好的方案,歡迎評(píng)論區(qū)留言補(bǔ)充完善,謝謝

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    749

    瀏覽量

    43852
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3685

    瀏覽量

    63918
  • RPC
    RPC
    +關(guān)注

    關(guān)注

    0

    文章

    110

    瀏覽量

    11471
  • 分布式
    +關(guān)注

    關(guān)注

    1

    文章

    809

    瀏覽量

    74361
  • 數(shù)據(jù)訪問(wèn)

    關(guān)注

    0

    文章

    9

    瀏覽量

    6531
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    分布式軟件系統(tǒng)

    。更重要的是,NI LabVIEW 8的分布式智能提供的解決方案不僅令這些挑戰(zhàn)迎刃而解,且易于實(shí)施。LabVIEW 8的分布式智能具體包括: 可對(duì)分布式系統(tǒng)中的所有結(jié)點(diǎn)編程——包括主機(jī)
    發(fā)表于 07-22 14:53

    微服務(wù)架構(gòu)下分布式事務(wù)解決方案 —— 阿里GTS

    摘要: 本文將深入和大家探討微服務(wù)架構(gòu)下,分布式事務(wù)的各種解決方案,并重點(diǎn)為大家解讀阿里巴巴提出的分布式事務(wù)解決方案----GTS。該
    發(fā)表于 03-16 11:14

    一行代碼,保障分布式事務(wù)一致性—GTS:微服務(wù)架構(gòu)下分布式事務(wù)解決方案

    務(wù)產(chǎn)生的事務(wù)問(wèn)題。分布式事務(wù)已經(jīng)成為微服務(wù)落地最大的阻礙,也是最具挑戰(zhàn)性的一個(gè)技術(shù)難題。 為此,本文將深入和大家探討微服務(wù)架構(gòu)下,分布式事務(wù)的各種解決方案,并重點(diǎn)為大家解讀阿里巴巴提出
    發(fā)表于 06-05 19:14

    淺談分布式緩存技術(shù)

    存儲(chǔ)成本分布式緩存應(yīng)用場(chǎng)景1,用于緩存網(wǎng)頁(yè)的內(nèi)容片段,包括HTML,CSS和圖像等,主要用于社交網(wǎng)站;2,緩存系統(tǒng)作為ORM框架的二級(jí)緩存提供外部服務(wù),減輕了數(shù)據(jù)庫(kù)的負(fù)載壓力,加快了應(yīng)用訪問(wèn);3.緩存
    發(fā)表于 11-16 15:45

    Qorvo分布式Wi-Fi網(wǎng)格解決方案

    實(shí)現(xiàn)互聯(lián)世界的創(chuàng)新RF解決方案提供商Qorvo宣布,正使用 802.11ax 產(chǎn)品組合擴(kuò)大分布式 Wi-Fi 解決方案在住宅中的適用范圍。該產(chǎn)品組合可改善 Wi-Fi 覆蓋范圍,幫助實(shí)現(xiàn)更小的器件
    發(fā)表于 11-02 07:01

    HarmonyOS教程—基于分布式數(shù)據(jù)接口,實(shí)現(xiàn)多種設(shè)備上一致的數(shù)據(jù)訪問(wèn)體驗(yàn)

    分布式數(shù)據(jù)庫(kù)中。通過(guò)結(jié)合帳號(hào)、應(yīng)用和數(shù)據(jù)庫(kù)三元組,分布式數(shù)據(jù)服務(wù)對(duì)屬于不同的應(yīng)用的數(shù)據(jù)進(jìn)行隔離,保證不同應(yīng)用之間的
    發(fā)表于 09-26 11:40

    萌新求助,求一個(gè)分布式光伏發(fā)電監(jiān)測(cè)系統(tǒng)解決方案

    萌新求助,求一個(gè)分布式光伏發(fā)電監(jiān)測(cè)系統(tǒng)解決方案
    發(fā)表于 10-22 07:59

    如何高效完成HarmonyOS分布式應(yīng)用測(cè)試?

    對(duì)HarmonyOS分布式應(yīng)用測(cè)試解決方案,具體方案介紹如下。二、分布式應(yīng)用測(cè)試解決方案DevEco Testing是一款全新的Harmon
    發(fā)表于 12-13 18:07

    HarmonyOS應(yīng)用開(kāi)發(fā)-DistributedDateDome分布式數(shù)據(jù)訪問(wèn)體驗(yàn)

    說(shuō)明:基于分布式數(shù)據(jù)接口,實(shí)現(xiàn)多種設(shè)備上一致的數(shù)據(jù)訪問(wèn)體驗(yàn)。效果圖:完整代碼地址:https://gitee.com/jltfcloudcn/jump_to/tree/feature/
    發(fā)表于 07-01 09:58

    【學(xué)習(xí)打卡】OpenHarmony的分布式任務(wù)調(diào)度

    、同步、注冊(cè)、調(diào)用)機(jī)制。分布式任務(wù)調(diào)度程序是能夠跨多個(gè)服務(wù)器啟動(dòng)調(diào)度作業(yè)或工作負(fù)載的軟件解決方案,整個(gè)過(guò)程是不需要人來(lái)值守的。舉個(gè)例子,我們可以在一臺(tái)或多臺(tái)機(jī)器上安裝分布式調(diào)度器,用戶可以通過(guò)它在
    發(fā)表于 07-18 17:06

    結(jié)合PKI與Kerberos的分布式認(rèn)證與訪問(wèn)控制

    本文首先闡述了分布式系統(tǒng)存在的重復(fù)認(rèn)證和信息流動(dòng)導(dǎo)致的權(quán)限擴(kuò)散的問(wèn)題,討論了各自的解決方案。最后提出了分布式系統(tǒng)認(rèn)證的總體架構(gòu),分析了解決方案的優(yōu)點(diǎn)以及缺點(diǎn)
    發(fā)表于 08-28 08:54 ?4次下載

    淺析Redis 分布式解決方案

    Redis 分布式解決方案是一種基于Redis實(shí)現(xiàn)的分布式鎖機(jī)制,可以確保在分布式環(huán)境中對(duì)共享資源的訪問(wèn)進(jìn)行同步控制,避免出現(xiàn)競(jìng)態(tài)條件和
    的頭像 發(fā)表于 12-04 14:00 ?348次閱讀

    分布式光伏電力監(jiān)控解決方案

    分布式光伏電力監(jiān)控解決方案
    的頭像 發(fā)表于 01-14 08:07 ?305次閱讀
    <b class='flag-5'>分布式</b>光伏電力監(jiān)控<b class='flag-5'>解決方案</b>

    分布式存儲(chǔ)與計(jì)算:大數(shù)據(jù)時(shí)代的解決方案

    分布式存儲(chǔ)和計(jì)算技術(shù)應(yīng)運(yùn)而生,并迅速成為處理大數(shù)據(jù)的首選方案。本文將深入探討分布式存儲(chǔ)和計(jì)算的概念、優(yōu)勢(shì)及其在各個(gè)領(lǐng)域的應(yīng)用情況。 1.
    的頭像 發(fā)表于 03-07 14:42 ?505次閱讀

    醫(yī)療PACS影像數(shù)據(jù)的極速分布式塊存儲(chǔ)解決方案

    醫(yī)療PACS影像數(shù)據(jù)的極速分布式塊存儲(chǔ)解決方案
    的頭像 發(fā)表于 08-23 10:13 ?35次閱讀
    醫(yī)療PACS影像<b class='flag-5'>數(shù)據(jù)</b>的極速<b class='flag-5'>分布式</b>塊存儲(chǔ)<b class='flag-5'>解決方案</b>