<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【191期】面試官:你能說說SOA架構(gòu)和微服務(wù)架構(gòu)的區(qū)別嘛?

          共 2628字,需瀏覽 6分鐘

           ·

          2021-05-10 20:21

          程序員的成長之路
          互聯(lián)網(wǎng)/程序員/技術(shù)/資料共享 
          關(guān)注


          閱讀本文大概需要 4.5 分鐘。

          來自:blog.csdn.net/zpoison/article/details/80729052

          1.SOA架構(gòu)和微服務(wù)架構(gòu)的區(qū)別

          首先SOA和微服務(wù)架構(gòu)一個(gè)層面的東西,而對(duì)于ESB和微服務(wù)網(wǎng)關(guān)是一個(gè)層面的東西,一個(gè)談到是架構(gòu)風(fēng)格和方法,一個(gè)談的是實(shí)現(xiàn)工具或組件。
          1.SOA(Service Oriented Architecture)“面向服務(wù)的架構(gòu)”: 他是一種設(shè)計(jì)方法,其中包含多個(gè)服務(wù), 服務(wù)之間通過相互依賴最終提供一系列的功能。一個(gè)服務(wù) 通常以獨(dú)立的形式存在與操作系統(tǒng)進(jìn)程中。各個(gè)服務(wù)之間 通過網(wǎng)絡(luò)調(diào)用。
          2.微服務(wù)架構(gòu): 其實(shí)和 SOA 架構(gòu)類似,微服務(wù)是在 SOA 上做的升華,微服務(wù)架構(gòu)強(qiáng)調(diào)的一個(gè)重點(diǎn)是“業(yè)務(wù)需要徹底的組件化和服務(wù)化”,原有的單個(gè)業(yè)務(wù)系統(tǒng)會(huì)拆分為多個(gè)可以獨(dú)立開發(fā)、設(shè)計(jì)、運(yùn)行的小應(yīng)用。這些小應(yīng)用之間通過服務(wù)完成交互和集成。
          微服務(wù)架構(gòu) = 80%的SOA服務(wù)架構(gòu)思想 + 100%的組件化架構(gòu)思想 + 80%的領(lǐng)域建模思想

          2.ESB和微服務(wù)API網(wǎng)關(guān)。

          1.ESB(企業(yè)服務(wù)總線): 簡單 來說 ESB 就是一根管道,用來連接各個(gè)服務(wù)節(jié)點(diǎn)。為了集 成不同系統(tǒng),不同協(xié)議的服務(wù),ESB 做了消息的轉(zhuǎn)化解釋和路由工作,讓不同的服務(wù)互聯(lián)互通;
          2.API網(wǎng)關(guān): API網(wǎng)關(guān)是一個(gè)服務(wù)器,是系統(tǒng)的唯一入口。從面向?qū)ο笤O(shè)計(jì)的角度看,它與外觀模式類似。API網(wǎng)關(guān)封裝了系統(tǒng)內(nèi)部架構(gòu),為每個(gè)客戶端提供一個(gè)定制的API。它可能還具有其它職責(zé),如身份驗(yàn)證、監(jiān)控、負(fù)載均衡、緩存、請(qǐng)求分片與管理、靜態(tài)響應(yīng)處理。
          API網(wǎng)關(guān)方式的核心要點(diǎn)是,所有的客戶端和消費(fèi)端都通過統(tǒng)一的網(wǎng)關(guān)接入微服務(wù),在網(wǎng)關(guān)層處理所有的非業(yè)務(wù)功能。通常,網(wǎng)關(guān)也是提供REST/HTTP的訪問API。服務(wù)端通過API-GW注冊(cè)和管理服務(wù)。

          3.SOA架構(gòu)特點(diǎn)

          系統(tǒng)集成: 站在系統(tǒng)的角度,解決企業(yè)系統(tǒng)間的通信問 題,把原先散亂、無規(guī)劃的系統(tǒng)間的網(wǎng)狀結(jié)構(gòu),梳理成 規(guī)整、可治理的系統(tǒng)間星形結(jié)構(gòu),這一步往往需要引入 一些產(chǎn)品,比如 ESB、以及技術(shù)規(guī)范、服務(wù)管理規(guī)范;這一步解決的核心問題是【有序】
          系統(tǒng)的服務(wù)化: 站在功能的角度,把業(yè)務(wù)邏輯抽象成 可復(fù)用、可組裝的服務(wù),通過服務(wù)的編排實(shí)現(xiàn)業(yè)務(wù)的 快速再生,目的:把原先固有的業(yè)務(wù)功能轉(zhuǎn)變?yōu)橥ㄓ?的業(yè)務(wù)服務(wù),實(shí)現(xiàn)業(yè)務(wù)邏輯的快速復(fù)用;這一步解決 的核心問題是【復(fù)用】
          業(yè)務(wù)的服務(wù)化: 站在企業(yè)的角度,把企業(yè)職能抽象成 可復(fù)用、可組裝的服務(wù);把原先職能化的企業(yè)架構(gòu)轉(zhuǎn)變?yōu)榉?wù)化的企業(yè)架構(gòu),進(jìn)一步提升企業(yè)的對(duì)外服務(wù)能力;“前面兩步都是從技術(shù)層面來解決系統(tǒng)調(diào)用、系統(tǒng)功能復(fù)用的問題”。第三步,則是以業(yè)務(wù)驅(qū)動(dòng)把一個(gè)業(yè)務(wù)單元封裝成一項(xiàng)服務(wù)。這一步解決的核心問題是【高效】

          4.微服務(wù)架構(gòu)特點(diǎn):

          1.通過服務(wù)實(shí)現(xiàn)組件化

          開發(fā)者不再需要協(xié)調(diào)其它服務(wù)部署對(duì)本服務(wù)的影響。

          2.按業(yè)務(wù)能力來劃分服務(wù)和開發(fā)團(tuán)隊(duì)

          開發(fā)者可以自由選擇開發(fā)技術(shù),提供 API 服務(wù)

          3.去中心化

          • 每個(gè)微服務(wù)有自己私有的數(shù)據(jù)庫持久化業(yè)務(wù)數(shù)據(jù)
          • 每個(gè)微服務(wù)只能訪問自己的數(shù)據(jù)庫,而不能訪問其它服務(wù)的數(shù)據(jù)庫
          • 某些業(yè)務(wù)場(chǎng)景下,需要在一個(gè)事務(wù)中更新多個(gè)數(shù)據(jù)庫。這種情況也不能直接訪問其它微服務(wù)的數(shù)據(jù)庫,而是通過對(duì)于微服務(wù)進(jìn)行操作。
          • 數(shù)據(jù)的去中心化,進(jìn)一步降低了微服務(wù)之間的耦合度,不同服務(wù)可以采用不同的數(shù)據(jù)庫技術(shù)(SQL、NoSQL等)。在復(fù)雜的業(yè)務(wù)場(chǎng)景下,如果包含多個(gè)微服務(wù),通常在客戶端或者中間層(網(wǎng)關(guān))處理。

          4.基礎(chǔ)設(shè)施自動(dòng)化(devops、自動(dòng)化部署)

          Java EE部署架構(gòu),通過展現(xiàn)層打包WARs,業(yè)務(wù)層劃分到JARs最后部署為EAR一個(gè)大包,而微服務(wù)則打開了這個(gè)黑盒子,把應(yīng)用拆分成為一個(gè)一個(gè)的單個(gè)服務(wù),應(yīng)用Docker技術(shù),不依賴任何服務(wù)器和數(shù)據(jù)模型,是一個(gè)全棧應(yīng)用,可以通過自動(dòng)化方式獨(dú)立部署,每個(gè)服務(wù)運(yùn)行在自己的進(jìn)程中,通過輕量的通訊機(jī)制聯(lián)系,經(jīng)常是基于HTTP資源API,這些服務(wù)基于業(yè)務(wù)能力構(gòu)建,能實(shí)現(xiàn)集中化管理(因?yàn)榉?wù)太多啦,不集中管理就無法DevOps啦)。

          5.主要區(qū)別

          6.Dubbo服務(wù)的最佳實(shí)踐

          分包

          • 服務(wù)接口、請(qǐng)求服務(wù)模型、異常信息都放在api里面,符合重用發(fā)布等價(jià)原則,共同重用原則
          • api里面放入spring 的引用配置。也可以放在模塊的包目錄下。

          粒度

          • 盡可能把接口設(shè)置成粗粒度,每個(gè)服務(wù)方法代表一個(gè)獨(dú)立的功能,而不是某個(gè)功能的步驟。否則就會(huì)涉及到分布式事務(wù)
          • 服務(wù)接口建議以業(yè)務(wù)場(chǎng)景為單位劃分。并對(duì)相近業(yè)務(wù)做抽象,防止接口暴增
          • 不建議使用過于抽象的通用接口  T T<泛型>,接口沒有明確的語義,帶來后期的維護(hù)

          版本

          • 每個(gè)接口都應(yīng)該定義版本,為后續(xù)的兼容性提供前瞻性的考慮 version (maven -snapshot)
          • 建議使用兩位版本號(hào),因?yàn)榈谌话姹咎?hào)表示的兼容性升級(jí),只有不兼容時(shí)才需要變更服務(wù)版本
          • 當(dāng)接口做到不兼容升級(jí)的時(shí)候,先升級(jí)一半或者一臺(tái)提供者為新版本,再將消費(fèi)全部升級(jí)新版本,然后再將剩下的一半提供者升級(jí)新版本

          預(yù)發(fā)布環(huán)境

          推薦用法

          • 在provider端盡可能配置consumer端的屬性
          • 比如timeout、retires、線程池大小、LoadBalance

          配置管理員信息

          • application上面配置的owner 、 owner建議配置2個(gè)人以上。因?yàn)閛wner都能夠在監(jiān)控中心看到

          配置dubbo緩存文件

          • 注冊(cè)中心的列表
          • 服務(wù)提供者列表
          <END>

          推薦閱讀:

          【190期】MQ消息中間件,面試能問寫什么?

          【189期】delete后加 limit是個(gè)好習(xí)慣么

          【188期】面試官:delete、truncate、drop的區(qū)別有哪些,該如何選擇

          5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹莓派,等等。在公眾號(hào)內(nèi)回復(fù)「2048」,即可免費(fèi)獲?。?!

          微信掃描二維碼,關(guān)注我的公眾號(hào)

          朕已閱 

          瀏覽 54
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  麻豆影院91免费版 | 午夜干美女 | 欧美猛交XX | 哪里可以看日本黄色电影 | 欧美特黄一级视频 |