1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Spring Cloud 常見面試題及答案

        共 3437字,需瀏覽 7分鐘

         ·

        2020-08-28 15:29


        點擊上方藍色“程序猿DD”,選擇“設(shè)為星標”

        回復“資源”獲取獨家整理的學習資料!

        作者 |?Wbw Belief

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

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


        1.什么是微服務?

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

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

        通俗的來講:

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

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

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

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

        業(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)境下,顯得更為合適。

        img

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

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

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

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

        **參考:**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)定性和可用性。

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

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

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

        缺點:隨著服務數(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.你所知道微服務的技術(shù)棧有哪些?列舉一二。

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

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

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

        微服務架構(gòu) 就是 對微服務進行管理整合應用的。微服務架構(gòu) 依賴于 微服務,是在微服務基礎(chǔ)之上的。

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


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

        往期推薦

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

        云原生落地難的五個痛點與解決方法

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

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

        一文學會常用 MySQL 分庫分表方案


        星球限時拼團優(yōu)惠進行中


        我的星球是否適合你?

        點擊閱讀原文看看我們都聊過啥?

        瀏覽 73
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

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

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            操操操com | 少妇高潮zzzzzzzy一avhd | 日韩成人激情 | 体内射精一区二区三区在线视频 | 91无码人妻精品一区二区蜜桃 | 免费欧美女人的小骚逼毛 | 一区二区三区日本电影 | 四虎影院黄片 | 啊轻点灬太粗嗯太深了用力了视频 | 天天射天天射 |