免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      Elasticseach:從微服務(wù)架構(gòu)演變到大寬表思維的架構(gòu)轉(zhuǎn)變

      Elasticseach:從微服務(wù)架構(gòu)演變到大寬表思維的架構(gòu)轉(zhuǎn)變

      序言

      圖示:Elasticsearch 在 DB-Engine 綜合排名第8

      Elasticsearch 簡稱”ES”, 在DB-Engine 綜合排名第8,已經(jīng)持續(xù)了相當(dāng)長的時(shí)間,按照當(dāng)下熱度應(yīng)該會(huì)繼續(xù)保持或者上升一個(gè)名次;ES在多數(shù)工程師印象中最深刻可能是ELK三件套或者全文檢索領(lǐng)域,但在筆者看來,應(yīng)該是業(yè)務(wù)系統(tǒng)領(lǐng)域“大寬表查詢”場景,或者叫“數(shù)據(jù)庫查詢加速”場景。

      下面就從微服務(wù)架構(gòu)開始,談?wù)凟S是如何解決應(yīng)用系統(tǒng)中復(fù)雜查詢的,為什么應(yīng)該是首選?

      微服務(wù)架構(gòu)

      微服務(wù) 是一種應(yīng)用系統(tǒng)架構(gòu)模式,非指特定的技術(shù)框架。微服務(wù)時(shí)代人人都在談微服務(wù)架構(gòu),在Java編程領(lǐng)域,Spring Cloud技術(shù)棧體系幾乎已經(jīng)成為了微服務(wù)的代名詞或者首選,當(dāng)下如果去應(yīng)聘一名Java工程師,有三個(gè)必問技術(shù)框架,Spring,Spring Boot,Spring Cloud,俗稱”廚房”三件套,隨便打開一個(gè)招聘網(wǎng)站或者了解一個(gè)公司IT項(xiàng)目架構(gòu)設(shè)計(jì),幾乎都有Spring XXXX。注意,這里不是跟大家討論微服務(wù)技術(shù)棧,只是為了給大家探討微服務(wù)架構(gòu)模式的一些弊端與進(jìn)化。

      微服務(wù)架構(gòu)模式

      圖示:某電商物流微服務(wù)架構(gòu)模式示意圖,參考百度百科

      在微服務(wù)架構(gòu)模式中,一般的做法會(huì)基于領(lǐng)域進(jìn)行服務(wù)劃分與編排;服務(wù)劃分為基礎(chǔ)服務(wù)與業(yè)務(wù)服務(wù),基礎(chǔ)服務(wù)更抽象一些,一個(gè)基礎(chǔ)服務(wù)對應(yīng)一個(gè)數(shù)據(jù)庫模型。

      如圖所示,用戶基礎(chǔ)服務(wù)有用戶領(lǐng)域?qū)?DB,訂單基礎(chǔ)服務(wù)有訂單領(lǐng)域 DB,商品有商品領(lǐng)域 DB 等;業(yè)務(wù)服務(wù)一般是聚合服務(wù),按照應(yīng)用系統(tǒng)交互方式組合,如訂單中心,需要查詢訂單基礎(chǔ)服務(wù)與商品基礎(chǔ)服務(wù),在訂單中心內(nèi)部進(jìn)行組合,還有如商品中心、庫存中心、財(cái)務(wù)中心等都是基于組合各自需要的基礎(chǔ)服務(wù)進(jìn)行。

      微服務(wù)架構(gòu)弊端

      基礎(chǔ)服務(wù)抽象的劃分與編排,初步看起來都非常美好,很符合微服務(wù)架構(gòu)模式規(guī)范;業(yè)務(wù)服務(wù)組合各種基礎(chǔ)服務(wù),也看起來很美好,也很符合微服務(wù)架構(gòu)模式規(guī)范。

      隨著業(yè)務(wù)規(guī)模越來越大,業(yè)務(wù)變化越來越復(fù)雜,以上微服務(wù)架構(gòu)模式開始出現(xiàn)各種各樣的查詢復(fù)雜度問題;首先,用戶、訂單、商品、支付基礎(chǔ)服務(wù)大概率都需要進(jìn)行分庫分表重構(gòu),在這之前訂單中心的查詢,進(jìn)行一次關(guān)聯(lián)查詢,只需要跨幾個(gè)基礎(chǔ)服務(wù)查詢,性能與復(fù)雜度都還能接受,在這之后,偶然的一次關(guān)聯(lián)查詢,就需要消耗非常多的查詢資源,包括數(shù)據(jù)庫層面、基礎(chǔ)服務(wù)組合調(diào)用層面等。

      圖示:訂單中心關(guān)聯(lián)查詢模式,系統(tǒng)復(fù)雜度高、查詢資源消耗大

      如果能通過快速廉價(jià)的增加硬件資源方式繼續(xù)這種微服務(wù)模式,倒也無可厚非,只是越往后可選擇的余地越來越有限。

      大寬表架構(gòu)

      為了解決微服務(wù)應(yīng)用架構(gòu)中,跨多個(gè)基礎(chǔ)服務(wù) join 聯(lián)合查詢問題,需要引入一種“大寬表”架構(gòu)模式,簡單來說就是將各種需要關(guān)聯(lián)的基礎(chǔ)服務(wù)數(shù)據(jù)提前關(guān)聯(lián)計(jì)算好,并存儲(chǔ)到一個(gè)強(qiáng)悍的數(shù)據(jù)產(chǎn)品中,基于此數(shù)據(jù)產(chǎn)品提煉新的基礎(chǔ)服務(wù)或者業(yè)務(wù)服務(wù),取名“xx數(shù)據(jù)服務(wù)”,以數(shù)據(jù)關(guān)聯(lián)為導(dǎo)向融入到微服務(wù)架構(gòu)體系之中。

      數(shù)據(jù)架構(gòu)模式

      圖示:訂單中心關(guān)聯(lián)查詢,由數(shù)據(jù)服務(wù)提供

      如圖所示,訂單中心的各種復(fù)雜查詢由訂單維度數(shù)據(jù)服務(wù)完成,數(shù)據(jù)服務(wù)獨(dú)立于基礎(chǔ)服務(wù),與基礎(chǔ)服務(wù)屬于同一服務(wù)層次,數(shù)據(jù)服務(wù)依賴的數(shù)據(jù)庫采用大寬表模式構(gòu)建,數(shù)據(jù)來源于其它數(shù)據(jù)庫同步,或離線同步或?qū)崟r(shí)同步。

      數(shù)據(jù)庫范式

      圖示:數(shù)據(jù)庫范式示意圖,來自百度百科

      我們知道,在設(shè)計(jì)數(shù)據(jù)庫表模型,必須要遵守?cái)?shù)據(jù)庫范式,已知目前有五種,通常意義到第三范式就差不多了,但是在面對日益復(fù)雜的應(yīng)用場景,反過來大大約束了數(shù)據(jù)產(chǎn)品的能力,進(jìn)而導(dǎo)致微服務(wù)架構(gòu)模式的性能問題。

      在此場景下,我們還有必要遵守范式約束嗎?答案是的,還是需要遵守,不過換個(gè)說法“反范式”。如訂單中心圖示,先必須有基礎(chǔ)服務(wù),然后才能有數(shù)據(jù)數(shù)據(jù),數(shù)據(jù)服務(wù)底層數(shù)據(jù)數(shù)據(jù)模型采用反范式設(shè)計(jì),數(shù)據(jù)來源基礎(chǔ)服務(wù),自己不生產(chǎn)數(shù)據(jù),不修改數(shù)據(jù),也不保證數(shù)據(jù)的 ACID ,僅僅是為了查詢存在。

      數(shù)據(jù)同步

      在大寬表架構(gòu)模式下,數(shù)據(jù)服務(wù)不負(fù)責(zé)數(shù)據(jù)的產(chǎn)生與維護(hù),數(shù)據(jù)來源于基礎(chǔ)服務(wù),從基礎(chǔ)服務(wù)到數(shù)據(jù)服務(wù),中間需要打通數(shù)據(jù)同步,解決了數(shù)據(jù)同步關(guān)鍵問題,也就解決了微服務(wù)架構(gòu)模式與數(shù)據(jù)架構(gòu)模式融合。

      圖示:實(shí)時(shí)同步與離線同步示意圖

      數(shù)據(jù)同步包含實(shí)時(shí)同步與離線同步,實(shí)時(shí)同步多數(shù)采用數(shù)據(jù)庫支持的 WAL 機(jī)制完成,如 Mysql-Binlog ;離線同步有更多的選擇方式,如 DataX 工具等。此處不深入展開數(shù)據(jù)同步話題,可以參考筆者歷史文章或公開分享內(nèi)容。

      用 ES 承載大寬表架構(gòu)模式

      為什么選擇 Elasticsearch 來承載數(shù)據(jù)服務(wù),實(shí)現(xiàn)大寬表架構(gòu)模式?以下簡單說幾點(diǎn)?

      首先,ES最核心的是倒排索算法,支持任意復(fù)雜條件組合查詢,大寬表的目的就是為了便于數(shù)據(jù)查詢檢索,而不必定制化的指定字段創(chuàng)建索引,同比傳統(tǒng)數(shù)據(jù)庫左側(cè)原則檢索算法,要靈活很多;

      其次,ES數(shù)據(jù)模型構(gòu)造基于 Free Schema 理念,應(yīng)用層面采用 Json 填充,支持局部數(shù)據(jù)變更,提供了非常靈活的機(jī)制,大寬表模式數(shù)據(jù)構(gòu)建時(shí),原則上無法保證所有關(guān)聯(lián)數(shù)據(jù)表完全同步更新,有了這種靈活模式,就不必拘泥于此;

      最后, ES 架構(gòu)設(shè)計(jì)的特性,分布式架構(gòu),支持橫向擴(kuò)展,支持超大集群規(guī)模,數(shù)據(jù)層面采用分片與副本機(jī)制,保障性能與高可用等。

      圖示:ES分布式架構(gòu),數(shù)據(jù)分片與副本

      結(jié)語

      當(dāng)傳統(tǒng)微服務(wù)架構(gòu)面臨海量數(shù)據(jù)檢索困境時(shí),不要試圖繼續(xù)在微服務(wù)架構(gòu)模式中優(yōu)化,記得嘗試數(shù)據(jù)架構(gòu)轉(zhuǎn)變,將大寬表架構(gòu)模式融入其中。

      參考文獻(xiàn)

    1. 馬丁叔叔 關(guān)于《微服務(wù)架構(gòu)概要描述》 https://martinfowler.com/articles/microservices.html
    2. 知乎《微服務(wù)架構(gòu)是什么?》
    3. https://www.zhihu.com/question/65502802
    4. 銘毅天下《 干貨 | Elasticsearch多表關(guān)聯(lián)設(shè)計(jì)指南 》 https://mp.weixin.qq.com/s/j7YdtmyuzBFRK1BViDtp2w
    5. 數(shù)據(jù)庫范式 https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E5%BA%93%E8%8C%83%E5%BC%8F/7309898
    6. 關(guān)于作者

      Elastic King 數(shù)據(jù)領(lǐng)域?qū)<?/p>

      • Elastic Stack 國內(nèi)頂尖實(shí)戰(zhàn)專家
      • ELastic Stack 技術(shù)社區(qū)分享嘉賓
      • 國內(nèi)首批Elastic 官方認(rèn)證工程師21人之一
      • 阿里云MVP(大數(shù)據(jù)領(lǐng)域)
      • DBAPlus MVP(原創(chuàng)內(nèi)容貢獻(xiàn)者)
      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年6月22日 21:10
      下一篇 2022年6月22日 21:10

      相關(guān)推薦

      • 淘寶工廠店的東西是正品嗎?淘寶工廠店為什么便宜

        淘工廠直營店其實(shí)就是鏈接淘寶賣家與工廠的平臺(tái),直接對接工廠型的商家,店鋪里的東西大部分價(jià)格都會(huì)很低。那么,淘工廠直營店靠譜嗎? 淘工廠直營店是靠譜的,但售后問題可能得不到很好的保障…

        2022年11月27日
      • 英雄聯(lián)盟手游好玩嗎(英雄聯(lián)盟手游好玩還是端游好玩)

        簡要回答 非常好玩,英雄聯(lián)盟手游這款游戲已經(jīng)正式的進(jìn)行公測,這款游戲是以5v5為模式進(jìn)行對戰(zhàn)的,它是以英雄聯(lián)盟端游為原型進(jìn)行開發(fā),里面的每一種玩法基本都沿襲了端游的特點(diǎn)。 01 這…

        2022年11月25日
      • 數(shù)字看亮點(diǎn)!前十月我國造船三大指標(biāo)繼續(xù)全球領(lǐng)先

        央視網(wǎng)消息:工業(yè)和信息化部最新數(shù)據(jù)顯示,今年1—10月,我國造船三大指標(biāo)繼續(xù)保持全球領(lǐng)先。隨著生產(chǎn)節(jié)奏加快,船企產(chǎn)業(yè)集中度進(jìn)一步提升。 2022年1—10月,全國造船完工量、新接訂…

        2022年11月25日
      • 前十個(gè)月我國造船業(yè)三大指標(biāo)穩(wěn)居世界第一

        今年1—10月,我國造船業(yè)在國際市場的份額繼續(xù)穩(wěn)居世界第一。一批高技術(shù)高附加值船舶實(shí)現(xiàn)了批量接單、批量生產(chǎn)。 近日,中國船舶上海船舶研究設(shè)計(jì)院又新接了韓國船東三艘汽車運(yùn)輸船的設(shè)計(jì)追…

        2022年11月25日
      • 客服的崗位職責(zé)怎么寫(客服工作內(nèi)容及職責(zé))

        各位小伙伴們大家周一好,又到了每周一給大家分享干貨內(nèi)容的時(shí)候啦~ 本期來跟大家分享一下客服工作管理流程以及客服崗位里面的每項(xiàng)職能崗位的核心細(xì)則,也是干貨滿滿推薦收藏~ 一.補(bǔ)償流程…

        2022年11月25日
      • 商家收到貨才會(huì)退款嗎(淘寶代付款退款錢到哪里了)

        在淘寶上有一些人下單購買商品的時(shí)候是通過代付的形式來支付的,一般情況下是家長幫助家里的小孩或者長輩進(jìn)行代付,而代付訂單和普通的訂單沒有太大的區(qū)別,不過如果發(fā)生退款的話,錢是退到哪里…

        2022年11月25日
      • 什么是推廣cpa一篇文章帶你看懂CPA推廣渠道

        CPA渠道 CPA指的是按照指定的行為結(jié)算,可以是搜索,可以是注冊,可以是激活,可以是搜索下載激活,可以是綁卡,實(shí)名認(rèn)證,可以是付費(fèi),可以是瀏覽等等。甲乙雙方可以根據(jù)自己的情況來定…

        2022年11月25日
      • 抖音直播帶貨有哪些方法技巧(抖音直播帶貨有哪些痛點(diǎn))

        如今抖音這個(gè)短視頻的變現(xiàn)能力越來越突顯了,尤其是在平臺(tái)上開通直播,更具有超強(qiáng)的帶貨屬性,已經(jīng)有越來越多的普通人加入到其中了。不過直播帶貨雖然很火,但是也不是每個(gè)人都能做好的,那么在…

        2022年11月24日
      • 銳龍97900x參數(shù)規(guī)格跑分評測 銳龍97900x屬于什么檔次

        銳龍9 7900X是銳龍7000系列處理器中性能頂尖的型號之一,它采用了這一代標(biāo)配的zen4架構(gòu)和5nm制程工藝,那么它具體的參數(shù)跑分如何,在電腦上世紀(jì)發(fā)揮怎么樣呢,下面就來看看銳…

        2022年11月24日
      • 明查|美國新冠后遺癥患者中有16%癥狀嚴(yán)重以致無法工作?

        點(diǎn)擊進(jìn)入澎湃新聞全球事實(shí)核查平臺(tái) 速覽 – 網(wǎng)傳數(shù)據(jù)比例無權(quán)威信源佐證,該比例有可能是結(jié)合了美國疾病防控中心和布魯金斯學(xué)會(huì)的數(shù)據(jù)得出,但這兩個(gè)機(jī)構(gòu)的調(diào)研目的和樣本都不同…

        2022年11月24日

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息