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

          【122期】談談幾個SpringCloud常見面試題及答案

          共 2979字,需瀏覽 6分鐘

           ·

          2021-01-20 00:16

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


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

          來自:blog.csdn.net/qq_41497111/article/details/92067565

          全文目錄

          1. 什么是微服務?
          2. 微服務之間如何獨立通訊的?
          3. SpringCloud 和 Dubbo 有哪些區(qū)別?
          4. SpringBoot 和 SpringCloud 之間關系?
          5. 什么是熔斷?什么是服務降級?
          6. 微服務的優(yōu)缺點是什么?說下你在項目中碰到的坑。
          7. eureka和zookeeper都可以提供服務注冊與發(fā)現(xiàn)的功能,請說說兩個的區(qū)別?
          8. 你所知道微服務的技術棧有哪些?列舉一二。
          9. 什么是微服務架構?

          1.什么是微服務?

          單個輕量級服務一般為一個單獨微服務,微服務講究的是 專注某個功能的實現(xiàn),比如登錄系統(tǒng)只專注于用戶登錄方面功能的實現(xiàn),講究的是職責單一,開箱即用,可以獨立運行。微服務架構系統(tǒng)是一個分布式的系統(tǒng),按照業(yè)務進行劃分服務單元模塊,解決單個系統(tǒng)的不足,滿足越來越復雜的業(yè)務需求。

          馬丁福勒(Martin Fowler):就目前而言,對于微服務業(yè)界并沒有一個統(tǒng)一的、標準的定義。但通常而言,微服務架構是一種架構模式或者說是架構風格,它提倡將單一應用程序劃分成一組小的服務。每個服務運行在其獨立的自己的進程中服務之間相互配合、相互協(xié)調(diào),為用戶提供最終價值。服務之間采用輕量級通信。每個服務都圍繞具體業(yè)務進行構建,并能夠獨立部署到生產(chǎn)環(huán)境等。另外應盡量避免統(tǒng)一的、集中的服務管理機制。

          通俗的來講:

          微服務就是一個獨立的職責單一的服務應用程序。在 intellij idea 工具里面就是用maven開發(fā)的一個個獨立的module,具體就是使用springboot 開發(fā)的一個小的模塊,處理單一專業(yè)的業(yè)務邏輯,一個模塊只做一個事情。

          微服務強調(diào)的是服務大小,關注的是某一個點,具體解決某一個問題/落地對應的一個服務應用,可以看做是idea 里面一個 module。

          比如你去醫(yī)院:你的牙齒不舒服,那么你就去牙科。你的頭疼,那么你就去腦科。一個個的科室,就是一個微服務,一個功能就是一個服務。

          業(yè)界大牛 馬丁福勒(Martin Fowler)講解 :

          https://martinfowler.com/bliki/

          看不懂英文,這里有中文博客翻譯的:

          https://blog.csdn.net/u013970991/article/details/53333921

          2.微服務之間如何獨立通訊的?

          同步通信:dobbo通過 RPC 遠程過程調(diào)用、springcloud通過 REST ?接口json調(diào)用?等。

          異步:消息隊列,如:RabbitMq、ActiveM、Kafka 等。

          3.SpringCloud 和 Dubbo 有哪些區(qū)別?

          首先,他們都是分布式管理框架。

          dubbo 是二進制傳輸,占用帶寬會少一點。SpringCloud是http 傳輸,帶寬會多一點,同時使用http協(xié)議一般會使用JSON報文,消耗會更大。

          dubbo 開發(fā)難度較大,所依賴的 jar 包有很多問題大型工程無法解決。SpringCloud 對第三方的繼承可以一鍵式生成,天然集成。

          SpringCloud 接口協(xié)議約定比較松散,需要強有力的行政措施來限制接口無序升級。

          最大的區(qū)別:

          Spring Cloud拋棄了Dubbo 的RPC通信,采用的是基于HTTP的REST方式。

          嚴格來說,這兩種方式各有優(yōu)劣。雖然在一定程度上來說,后者犧牲了服務調(diào)用的性能,但也避免了上面提到的原生RPC帶來的問題。而且REST相比RPC更為靈活,服務提供方和調(diào)用方的依賴只依靠一紙契約,不存在代碼級別的強依賴,這在強調(diào)快速演化的微服務環(huán)境下,顯得更為合適。

          4.SpringBoot 和 SpringCloud 之間關系?

          SpringBoot:專注于快速方便的開發(fā)單個個體微服務(關注微觀);SpringCloud:關注全局的微服務協(xié)調(diào)治理框架,將SpringBoot開發(fā)的一個個單體微服務組合并管理起來(關注宏觀);

          SpringBoot可以離開SpringCloud獨立使用,但是SpringCloud不可以離開SpringBoot,屬于依賴關系。

          參考:

          https://blog.csdn.net/qq_41497111/article/details/91042405

          5.什么是熔斷?什么是服務降級?

          服務熔斷的作用類似于我們家用的保險絲,當某服務出現(xiàn)不可用或響應超時的情況時,為了防止整個系統(tǒng)出現(xiàn)雪崩,暫時停止對該服務的調(diào)用。

          服務降級是從整個系統(tǒng)的負荷情況出發(fā)和考慮的,對某些負荷會比較高的情況,為了預防某些功能(業(yè)務場景)出現(xiàn)負荷過載或者響應慢的情況,在其內(nèi)部暫時舍棄對一些非核心的接口和數(shù)據(jù)的請求,而直接返回一個提前準備好的fallback(退路)錯誤處理信息。這樣,雖然提供的是一個有損的服務,但卻保證了整個系統(tǒng)的穩(wěn)定性和可用性。

          6.微服務的優(yōu)缺點是什么?說下你在項目中碰到的坑。

          優(yōu)點:松耦合,聚焦單一業(yè)務功能,無關開發(fā)語言,團隊規(guī)模降低。在開發(fā)中,不需要了解多有業(yè)務,只專注于當前功能,便利集中,功能小而精。微服務一個功能受損,對其他功能影響并不是太大,可以快速定位問題。微服務只專注于當前業(yè)務邏輯代碼,不會和 html、css 或其他界面進行混合。可以靈活搭配技術,獨立性比較舒服。

          缺點:隨著服務數(shù)量增加,管理復雜,部署復雜,服務器需要增多,服務通信和調(diào)用壓力增大,運維工程師壓力增大,人力資源增多,系統(tǒng)依賴增強,數(shù)據(jù)一致性,性能監(jiān)控。

          7.eureka和zookeeper都可以提供服務注冊與發(fā)現(xiàn)的功能,請說說兩個的區(qū)別?

          • zookeeper 是CP原則,強一致性和分區(qū)容錯性。
          • eureka 是AP 原則 可用性和分區(qū)容錯性。
          • zookeeper當主節(jié)點故障時,zk會在剩余節(jié)點重新選擇主節(jié)點,耗時過長,雖然最終能夠恢復,但是選取主節(jié)點期間會導致服務不可用,這是不能容忍的。
          • eureka各個節(jié)點是平等的,一個節(jié)點掛掉,其他節(jié)點仍會正常保證服務。

          8.你所知道微服務的技術棧有哪些?列舉一二。


          9.什么是微服務架構?

          在前面你理解什么是微服務,那么對于微服務架構基本上就已經(jīng)理解了。

          微服務架構 就是 對微服務進行管理整合應用的。微服務架構 依賴于 微服務,是在微服務基礎之上的。

          例如:上面已經(jīng)列舉了什么是微服務。在醫(yī)院里,每一個科室都是一個獨立的微服務,那么 這個醫(yī)院 就是 一個大型的微服務架構,就類似 院長 可以 對下面的 科室進行管理。微服務架構主要就是這種功能。

          推薦閱讀:

          【121期】面試官:什么是熔斷?什么是服務降級?

          【120期】面試官:談談什么是微服務?

          【119期】談談在項目中,如何應對高并發(fā)流量

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

          微信掃描二維碼,關注我的公眾號

          朕已閱?

          瀏覽 53
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  日逼美女| 国产AV手机版 | 奇米无码| 日韩激情无码一区二区 | 国产欧美日韩在线播放 |