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

          Spring Cloud 常見面試題及答案

          共 3437字,需瀏覽 7分鐘

           ·

          2020-08-28 15:29


          點(diǎn)擊上方藍(lán)色“程序猿DD”,選擇“設(shè)為星標(biāo)”

          回復(fù)“資源”獲取獨(dú)家整理的學(xué)習(xí)資料!

          作者 |?Wbw Belief

          來源 |?blog.csdn.net/qq_41497111/article/details/92067565

          練武不練功,到頭一場空。


          1.什么是微服務(wù)?

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

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

          通俗的來講:

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

          微服務(wù)強(qiáng)調(diào)的是服務(wù)大小,關(guān)注的是某一個(gè)點(diǎn),具體解決某一個(gè)問題/落地對(duì)應(yīng)的一個(gè)服務(wù)應(yīng)用,可以看做是idea 里面一個(gè) module。

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

          更多了解見:https://blog.csdn.net/sunming709424/article/details/80578559

          業(yè)界大牛 馬丁福勒(Martin Fowler)講解 :https://martinfowler.com/bliki/

          看不懂英文,這里有中文博客翻譯的:https://blog.csdn.net/u013970991/article/details/53333921

          2.微服務(wù)之間如何獨(dú)立通訊的?

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

          異步:消息隊(duì)列,如:RabbitMq、ActiveM、Kafka 等。

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

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

          dubbo 是二進(jìn)制傳輸,占用帶寬會(huì)少一點(diǎn)。SpringCloud是http 傳輸,帶寬會(huì)多一點(diǎn),同時(shí)使用http協(xié)議一般會(huì)使用JSON報(bào)文,消耗會(huì)更大。

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

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

          最大的區(qū)別: **Spring Cloud拋棄了Dubbo 的RPC通信,采用的是基于HTTP的REST方式。**

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

          img

          參考:https://www.cnblogs.com/cbxBlog/p/9198401.html

          4.SpringBoot 和 SpringCloud 之間關(guān)系?

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

          SpringBoot可以離開SpringCloud獨(dú)立使用,但是SpringCloud不可以離開SpringBoot,屬于依賴關(guān)系。

          **參考:**https://blog.csdn.net/qq_41497111/article/details/91042405

          5.什么是熔斷?什么是服務(wù)降級(jí)?

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

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

          參考:https://blog.csdn.net/pengjunlee/article/details/86688858

          6.微服務(wù)的優(yōu)缺點(diǎn)是什么?說下你在項(xiàng)目中碰到的坑。

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

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

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

          zookeeper 是CP原則,強(qiáng)一致性和分區(qū)容錯(cuò)性。eureka 是AP 原則 可用性和分區(qū)容錯(cuò)性。zookeeper當(dāng)主節(jié)點(diǎn)故障時(shí),zk會(huì)在剩余節(jié)點(diǎn)重新選擇主節(jié)點(diǎn),耗時(shí)過長,雖然最終能夠恢復(fù),但是選取主節(jié)點(diǎn)期間會(huì)導(dǎo)致服務(wù)不可用,這是不能容忍的。eureka各個(gè)節(jié)點(diǎn)是平等的,一個(gè)節(jié)點(diǎn)掛掉,其他節(jié)點(diǎn)仍會(huì)正常保證服務(wù)。

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

          微服務(wù)條目落地技術(shù)
          服務(wù)開發(fā)SpringBoot、Spring、SpringMVC
          服務(wù)配置與管理Netfix公司的Archaius、阿里的Dlamond等
          服務(wù)注冊與發(fā)現(xiàn)Eurka、Consul、Zookeeper等
          服務(wù)調(diào)用Rest(服務(wù)通信)、RPC(Dubbo)、GRpc
          服務(wù)熔斷器Hystrix、Envoy等
          負(fù)載均衡Nginx、Ribbon等
          服務(wù)接口調(diào)用(客戶端簡化工具)Fegin等
          消息隊(duì)列Kafka、RabbitMQ、ActiveMQ等
          服務(wù)配置中心管理SpringCloudConfig、Chef等
          服務(wù)路由(API網(wǎng)關(guān))Zuul等
          服務(wù)監(jiān)控Zabbix,Nagios,Metrics,Spectator等
          全鏈路追蹤Zipkin,Brave,Dapper等
          服務(wù)部署Docker,OpenStack,Kubernetes等
          數(shù)據(jù)流操作開發(fā)包SpringCloud Stream(封裝與Redis,Rabbit,kafka等發(fā)送接收消息)
          事件消息總線Spring Cloud Bus

          9.什么是微服務(wù)架構(gòu)?

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

          微服務(wù)架構(gòu) 就是 對(duì)微服務(wù)進(jìn)行管理整合應(yīng)用的。微服務(wù)架構(gòu) 依賴于 微服務(wù),是在微服務(wù)基礎(chǔ)之上的。

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


          天上飛的理念,必然有落地的實(shí)現(xiàn)。

          往期推薦

          啥是指標(biāo)陷阱?很多就出現(xiàn)在你的身邊!

          云原生落地難的五個(gè)痛點(diǎn)與解決方法

          史無前例,140買400的硬核書,當(dāng)當(dāng)這波羊毛別忘薅!

          為什么建議大家使用 Linux 開發(fā)?爽(外加七個(gè)感嘆號(hào))

          一文學(xué)會(huì)常用 MySQL 分庫分表方案


          星球限時(shí)拼團(tuán)優(yōu)惠進(jìn)行中


          我的星球是否適合你?

          點(diǎn)擊閱讀原文看看我們都聊過啥?

          瀏覽 73
          點(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>
                  欧美大香蕉在线观看免费一区二区三区 | www射www | 蜜桃av在线 | 国 产 成 人 在 线 视频观看 | 日本女优中文字幕在线观看 |