<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>

          【120期】面試官:談?wù)勈裁词俏⒎?wù)?

          共 1722字,需瀏覽 4分鐘

           ·

          2021-01-18 12:42

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


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

          來自:https://www.jianshu.com/p/d9504fc0af4d

          注:本文以面試應(yīng)答目的為主,深入學(xué)習(xí)請自行查閱其他資料,后續(xù)會匯總一些微服務(wù)相關(guān)面試題

          什么是微服務(wù)

          微服務(wù)架構(gòu)的系統(tǒng)是一個分布式的系統(tǒng),按業(yè)務(wù)進(jìn)行劃分為獨(dú)立的服務(wù)單元,解決單體系統(tǒng)的不足,同時也滿足越來越復(fù)雜的業(yè)務(wù)需求。

          一.單體架構(gòu)

          1.1什么是單體架構(gòu)

          在軟件設(shè)計的時候經(jīng)常提到和使用經(jīng)典的3層模型,即表現(xiàn)層,業(yè)務(wù)邏輯層,數(shù)據(jù)訪問層。雖然在軟件設(shè)計中劃分了3層模型,但是對業(yè)務(wù)場景沒有劃分,一個典型的單體架構(gòu)就是將所有的業(yè)務(wù)場景的表現(xiàn)層,業(yè)務(wù)邏輯層,數(shù)據(jù)訪問層放在一個工程中最終經(jīng)過編譯,打包,部署在一臺服務(wù)器上。此時服務(wù)架構(gòu)如圖:

          1.2單體架構(gòu)存在的不足

          在小型應(yīng)用的初期,訪問量小的時候這種架構(gòu)的性價比還是比較高的,開發(fā)速度快,成本低,但是隨著業(yè)務(wù)的發(fā)展,邏輯越來越復(fù)雜,代碼量越來越大,代碼得可讀性和可維護(hù)性越來越低。用戶的增加,訪問量越來越多單體架構(gòu)的應(yīng)用并發(fā)能力十分有限。
          可能會有人想到將單體應(yīng)用進(jìn)行集群部署,并增加負(fù)載均衡服務(wù)器,再來個緩存服務(wù)器和文件服務(wù)器,數(shù)據(jù)庫再搞個讀寫分離。這種架構(gòu)如圖:
          這種架構(gòu)雖然有一定的并發(fā)能力,及應(yīng)對一定復(fù)雜業(yè)務(wù),但是依然沒有改變系統(tǒng)為單體架構(gòu)的事實(shí)。大量的業(yè)務(wù)必然會有大量的代碼,代碼得可讀性和可維護(hù)性依然很差。如果面對海量的用戶,它的并發(fā)能力依然不夠。基于以上單體架構(gòu)系統(tǒng)的不足,提出了微服務(wù)架構(gòu)。

          二.微服務(wù)

          2.1什么是微服務(wù)

          說了這么多現(xiàn)在來看看到底什么是微服務(wù)。微服務(wù)最初是由Martin Fowler提出來的他的理解如下:
          微服務(wù)架構(gòu)就是將單一程序開發(fā)成一個微服務(wù),每個微服務(wù)運(yùn)行在自己的進(jìn)程中,并使用輕量級的機(jī)制通信,通常是HTTP RESTFUL API。這些服務(wù)圍繞業(yè)務(wù)能力來劃分,并通過自動化部署機(jī)制來獨(dú)立部署。這些服務(wù)可以使用不同的編程語言,不同數(shù)據(jù)庫,以保證最低限度的集中式管理。
          總結(jié)起來微服務(wù)就是將一個單體架構(gòu)的應(yīng)用按業(yè)務(wù)劃分為一個個的獨(dú)立運(yùn)行的程序即服務(wù),它們之間通過HTTP協(xié)議進(jìn)行通信(也可以采用消息隊(duì)列來通信,如RoocketMQ,Kafaka等),可以采用不同的編程語言,使用不同的存儲技術(shù),自動化部署(如Jenkins)減少人為控制,降低出錯概率。
          服務(wù)數(shù)量越多,管理起來越復(fù)雜,因此采用集中化管理。例如Eureka,Zookeeper等都是比較常見的服務(wù)集中化管理框架。

          2.2微服務(wù)的優(yōu)勢

          • 將復(fù)雜的業(yè)務(wù)拆分成多個小的業(yè)務(wù),每個業(yè)務(wù)拆分成一個服務(wù),將復(fù)雜的問題簡單化。利于分工,降低新人的學(xué)習(xí)成本。

          • 微服務(wù)系統(tǒng)是分布式系統(tǒng),業(yè)務(wù)與業(yè)務(wù)之間完全解耦,隨著業(yè)務(wù)的增加可以根據(jù)業(yè)務(wù)再拆分,具有極強(qiáng)的橫向擴(kuò)展能力。面對搞并發(fā)的場景可以將服務(wù)集群化部署,加強(qiáng)系統(tǒng)負(fù)載能力。

          • 服務(wù)間采用HTTP協(xié)議通信,服務(wù)與服務(wù)之間完全獨(dú)立。每個服務(wù)可以根據(jù)業(yè)務(wù)場景選取合適的編程語言和數(shù)據(jù)庫。

          • 微服務(wù)每個服務(wù)都是獨(dú)立部署的,每個服務(wù)的修改和部署對其他服務(wù)沒有影響。

          2.3微服務(wù)和SOA的關(guān)系

          SOA即面向服務(wù)的架構(gòu),SOA是根據(jù)企業(yè)服務(wù)總線(ESB)模式來整合集成大量單一龐大的系統(tǒng),微服務(wù)可以說是SOA的一種實(shí)現(xiàn),將復(fù)雜的業(yè)務(wù)組件化。但它比ESB實(shí)現(xiàn)的SOA更加的輕便敏捷和簡單。

          推薦閱讀:

          【119期】談?wù)勗陧?xiàng)目中,如何應(yīng)對高并發(fā)流量

          【118期】面試官:你真的清楚 i = i++和 i = ++i 的區(qū)別嗎?

          【117期】面試官:熟悉JVM嗎?為什么新生代內(nèi)存需要有兩個Survivor區(qū)?

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

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

          朕已閱?

          瀏覽 100
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  亚洲激情黄色视频 | 欧美激情性爱网站 | 国产无码电影在线 | 九哥操比网 | 成人电影一区二区 |