日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

9道微服务面试题,你能回答上来几个?

發布時間:2023/12/31 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 9道微服务面试题,你能回答上来几个? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如今,微服務是我們Java開發者必備的技能之一了。不管你工作中是否真的是使用微服務架構,但是面試官肯定會問你,所以田哥給你整理一份微服務面試題。

話不多說,我們直入主題。

1. 什么是微服務?

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

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

通俗的來講:

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

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

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

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

同步通信:dobbo 通過?RPC 遠程過程調用、springcloud 通過 REST 接口 json 調用?等。異步:消息隊列,如:RabbitMq、ActiveM、Kafka?等。

3.SpringCloud 和 Dubbo 有哪些區別?

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

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

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

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

  • 最大的區別:?Spring Cloud 拋棄了 Dubbo 的 RPC 通信,采用的是基于 HTTP 的 REST 方式。

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

SpringCloud 和 Dubbo.png

4.SpringBoot 和 SpringCloud 之間關系?

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

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

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

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

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

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

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

  • 缺點:隨著服務數量增加,管理復雜,部署復雜,服務器需要增多,服務通信和調用壓力增大,運維工程師壓力增大,人力資源增多,系統依賴增強,數據一致性,性能監控。

7.eureka 和 zookeeper有什么區別?

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

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

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

9. 什么是微服務架構?

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

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

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

?最后,想要獲取更多Java干貨資料,QQ搜索群號805879199即可~???

總結

以上是生活随笔為你收集整理的9道微服务面试题,你能回答上来几个?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。