04-微服務 面試題-mk

文章目錄

  • 1.Spring Cloud 常見的組件有哪些?
  • 2.服務注冊和發現是什么意思?(Spring Cloud 如何實現服務注冊發現)
  • 3.Nacos配置中心熱加載實現原理及關鍵技術
  • 4.OpenFeign在微服務中的遠程服務調用工作流程
  • 5.你們項目負載均衡如何實現的 ?
  • 6.什么是服務雪崩,怎么解決這個問題?
  • 7.你們服務是怎么監控的?
  • 8.微服務限流(漏桶算法、令牌桶算法)
  • 9.解釋一下CAP和BASE
  • 10.你們采用哪種分布式事務解決方案?
    • 10.1.seata的XA模式(銀行業務)
    • 10.2.AT模式原理(互聯網業務)
    • 10.3.TCC模式原理(銀行業務)
    • 10.4.MQ分布式事務
  • 11.兩階段提交(2PC)與三階段提交(3PC)對比
  • 12.分布式服務的接口冪等性如何設計?
  • 13.你們項目中使用了什么分布式任務調度
  • 15.XXL-Job 處理大數據量并發任務的解決方案及底層原理
  • 16.springboot 項目改造成springcloud 項目的過程

1.Spring Cloud 常見的組件有哪些?

Spring Cloud 5大組件有哪些?

  • 基礎的內容考察
  • 回答原則:簡單的問題不能答錯(一道面試題就能淘汰一個人)新手和老手都要注意
    在這里插入圖片描述
    在這里插入圖片描述

面試參考回答:

面試官:Spring Cloud 5大組件有哪些?

候選人:早期我們一般認為的Spring Cloud五大組件是

  • Eureka:注冊中心
  • Ribbon:負載均衡
  • Feign:遠程調用
  • Hystrix:服務熔斷
  • Zuul/Gateway:網關

隨著SpringCloudAlibba在國內興起 , 我們項目中使用了一些阿里巴巴的組件

  • 注冊中心/配置中心 Nacos
  • 負載均衡 Ribbon
  • 服務調用 Feign
  • 服務保護 sentinel
  • 服務網關 Gateway

2.服務注冊和發現是什么意思?(Spring Cloud 如何實現服務注冊發現)

  • 微服務中必須要使用的組件,考察我們使用微服務的程度
  • 注冊中心的核心作用是:服務注冊和發現
  • 常見的注冊中心:eureka、nocas、zookeeper

我做過的哪個微服務項目,使用了哪個注冊中心

Eureka的作用
在這里插入圖片描述
服務注冊和發現是什么意思?Spring Cloud 如何實現服務注冊發現?

  • 我們當時項目采用的eureka作為注冊中心,這個也是spring cloud體系中的一個核心組件
  • 服務注冊:服務提供者需要把自己的信息注冊到eureka,由eureka來保存這些信息,比如服務名稱、ip、端口等等
  • 服務發現:消費者向eureka拉取服務列表信息,如果服務提供者有集群,則消費者會利用負載均衡算法,選擇一個發起調用
  • 服務監控:服務提供者會每隔30秒向eureka發送心跳,報告健康狀態,如果eureka服務90秒沒接收到心跳,從eureka中剔除

我看你之前也用過nacos、你能說下nacos與eureka的區別?

  • 簡歷上有體現
  • 面試官比較熟悉nacos和eureka
    在這里插入圖片描述

我看你之前也用過nacos、你能說下nacos與eureka的區別?

  • Nacos與eureka的共同點(注冊中心)

    • 都支持服務注冊和服務拉取
    • 都支持服務提供者心跳方式做健康檢測
  • Nacos與Eureka的區別(注冊中心)

    • Nacos支持服務端主動檢測提供者狀態:臨時實例采用心跳模式,非臨時實例采用主動檢測模式
    • 臨時實例心跳不正常會被剔除,非臨時實例則不會被剔除
    • Nacos支持服務列表變更的消息推送模式,服務列表更新更及時
    • Nacos集群默認采用AP(高可用)方式,當集群中存在非臨時實例時,采用CP(強一致)模式;Eureka采用AP方式
  • Nacos還支持了配置中心,eureka則只有注冊中心,也是選擇使用nacos的一個重要原因

3.Nacos配置中心熱加載實現原理及關鍵技術

Nacos配置中心熱加載實現原理及關鍵技術

4.OpenFeign在微服務中的遠程服務調用工作流程

OpenFeign在微服務中的遠程服務調用工作流程

5.你們項目負載均衡如何實現的 ?

  • 負載均衡 Ribbon,發起遠程調用feign就會使用Ribbon
  • Ribbon負載均衡策略有哪些 ?
  • 如果想自定義負載均衡策略如何實現 ?

Ribbon負載均衡流程
在這里插入圖片描述

  • RoundRobinRule:簡單輪詢服務列表來選擇服務器
  • WeightedResponseTimeRule:按照權重來選擇服務器,響應時間越長,權重越小,被選擇概率較低
  • RandomRule:隨機選擇一個可用的服務器
  • BestAvailableRule:忽略那些短路的服務器,并選擇并發數較低的服務器(最小連接數)
  • RetryRule:重試機制的選擇邏輯(按照輪詢方式進行選擇,如果出現宕機,會在指定時間內重試)
  • AvailabilityFilteringRule:可用性敏感策略,先過濾非健康的,再選擇連接數較小的實例
  • ZoneAvoidanceRule:以區域可用的服務器為基礎進行服務器的選擇。使用Zone對服務器進行分類,這個Zone可以理解為一個機房、一個機架等。而后再對Zone內的多個服務做輪詢(默認,區域就近)

如果想自定義負載均衡策略如何實現 ?

可以自己創建類實現IRule接口 , 然后再通過配置類或者配置文件配置即可 ,通過定義IRule實現可以修改負載均衡規則,有兩種方式:
在這里插入圖片描述你們項目負載均衡如何實現的 ?

微服務的負載均衡主要使用了一個組件Ribbon,比如,我們在使用feign遠程調用的過程中,底層的負載均衡就是使用了ribbon

Ribbon負載均衡策略有哪些 ?

  • RoundRobinRule:簡單輪詢服務列表來選擇服務器
  • WeightedResponseTimeRule:按照權重來選擇服務器,響應時間越長,權重越小
  • RandomRule:隨機選擇一個可用的服務器
  • ZoneAvoidanceRule:區域敏感策略,以區域可用的服務器為基礎進行服務器的選擇。使用Zone對服務器進行分類,這個Zone可以理解為一個機房、一個機架等。而后再對Zone內的多個服務做輪詢(默認)

如果想自定義負載均衡策略如何實現 ?
提供了兩種方式:

  • 創建類實現IRule接口,可以指定負載均衡策略(全局)
  • 在客戶端的配置文件中,可以配置某一個服務調用的負載均衡策略(局部)

6.什么是服務雪崩,怎么解決這個問題?

  • 什么是服務雪崩
  • 熔斷降級(通過Hystix 服務熔斷降級來解決 )
  • 限流(預防)
    在這里插入圖片描述
    服務降級

服務降級是服務自我保護的一種方式,或者保護下游服務的一種方式,用于確保服務不會受請求突增影響變得不可用,確保服務不會崩潰
在這里插入圖片描述
在這里插入圖片描述
服務熔斷

Hystrix 熔斷機制,用于監控微服務調用情況,?默認是關閉的,如果需要開啟需要在引導類上添

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76916.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76916.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76916.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis最佳實踐——秒殺系統設計詳解

基于Redis的高并發秒殺系統設計(十萬級QPS) 一、秒殺系統核心挑戰 瞬時流量洪峰:100萬 QPS請求沖擊庫存超賣風險:精準扣減防止超賣系統高可用性:99.99%服務可用性要求數據強一致性:庫存/訂單/支付狀態同步…

AI大模型從0到1記錄學習 數據結構和算法 day18

3.3.1 棧的概述 棧(Stack)是一個線性結構,其維護了一個有序的數據列表,列表的一端稱為棧頂(top),另一端稱為棧底(bottom)。棧對數據的操作有明確限定,插入元素…

粘性定位(position:sticky)——微信小程序學習筆記

1. 簡介 CSS 中的粘性定位(Sticky positioning)是一種特殊的定位方式,它可以使元素在滾動時保持在視窗的特定位置,類似于相對定位(relative),但當頁面滾動到元素的位置時,它會表現得…

通過使用 include 語句加載并執行一個CMake腳本來引入第三方庫

通過使用 include 語句加載并執行一個CMake腳本來引入第三方庫 當項目中使用到第三方庫時,可以通過使用 include 語句來加載并執行一個CMake腳本,在引入的CMake腳本中進行第三方庫的下載、構建和庫查找路徑的設置等操作,以這種方式簡化項目中…

DNS正反向解析復習,DNS主從服務,轉發服務及DNS和nginx聯合案例

正向解析 1、配置主機名 [rootlocalhost ~]# dnf install bash-completion -y #一個按tap鍵補全的軟件 [rootlocalhost ~]# hostnamectl hostname dns #改主機名為dns [rootlocalhost ~]# exit ssh root你的IP地址 要重啟才會生效2、安裝bind [rootdns ~]# dnf install b…

網絡安全·第一天·IP協議安全分析

本篇博客講述的是網絡安全中一些協議缺陷以及相應的理論知識,本博主盡可能講明白其中的一些原理以及對應的防衛措施。 學習考研408的同學也能進來看看,或許對考研有些許幫助(按照考研現在的趨勢,年年都有新題目,本文當…

【詳解】Nginx配置WebSocket

目錄 Nginx配置WebSocket 簡介 準備工作 檢查 Nginx 版本 配置 Nginx 支持 WebSocket 修改 Nginx 配置文件 解釋配置項 測試配置 測試 WebSocket 連接 WebSocket 服務端 (Node.js) WebSocket 客戶端 (HTML JavaScript) 運行測試 Nginx 配置文件示例 解釋 測試配…

《軌道力學講義》——第八講:行星際軌道設計

第八講:行星際軌道設計 引言 行星際軌道設計是探索太陽系的核心技術,它涉及如何規劃和優化航天器從一個天體到另一個天體的飛行路徑。隨著人類探索太陽系的雄心不斷擴大,從最初的月球探測到火星探測,再到更遙遠的外太陽系探測&a…

操作系統學習筆記——[特殊字符]超詳細 | 如何喚醒被阻塞的 socket 線程?線程阻塞原理、線程池、fork/vfork徹底講明白!

💡超詳細 | 如何喚醒被阻塞的 socket 線程?線程阻塞原理、線程池、fork/vfork徹底講明白! 一、什么是阻塞?為什么線程會阻塞?二、socket線程被阻塞的典型場景🧠 解法思路: 三、線程的幾種阻塞狀…

第十六屆藍橋杯大賽軟件賽省賽 Python 大學 B 組 滿分題解

題面鏈接Htlang/2025lqb_python_b 個人覺得今年這套題整體比往年要簡單許多,但是G題想簡單了出大問題,預估50101015120860,道阻且長,再接再厲 代碼僅供學習參考,滿分為賽后洛谷中的測評,藍橋杯官方測評待…

若依代碼生成器原理velocity模板引擎(自用)

1.源碼分析 代碼生成器:導入表結構(預覽、編輯、刪除、同步)、生成前后端代碼 代碼生成器表結構說明: 若依提供了兩張核心表來存儲導入的業務表信息: gen_table:存儲業務表的基本信息 ,它對應于配置代碼基本信息和生成信息的頁…

如何制定有效的風險應對計劃

制定有效的風險應對計劃的核心在于: 識別潛在風險、評估風險的影響與概率、選擇合適的應對策略、建立動態監控和反饋機制。 其中,識別潛在風險是最為關鍵的第一步。只有準確識別出可能的風險,才能在后續的評估、應對、監控等環節中做到有的放…

A2A協議實現詳解及示例

A2A協議概述 A2A (Agent2Agent) 是Google推出的一個開放協議,旨在使AI智能體能夠安全地相互通信和協作。該協議打破了孤立智能體系統之間的壁壘,實現了復雜的跨應用自動化。[1] A2A協議的核心目標是讓不同的AI代理能夠相互通信、安全地交換信息以及在各…

【中級軟件設計師】前趨圖 (附軟考真題)

【中級軟件設計師】前趨圖 (附軟考真題) 目錄 【中級軟件設計師】前趨圖 (附軟考真題)一、歷年真題三、真題的答案與解析答案解析 復習技巧: 若已掌握【前趨圖】相關知識,可直接刷以下真題; 若對知識一知半解,建議略讀題目&#x…

調節磁盤和CPU的矛盾——InnoDB的Buffer Pool

緩存的重要性 無論是用于存儲用戶數據的索引【聚簇索引、二級索引】還是各種系統數據,都是以頁的形式存放在表空間中【對一個/幾個實際文件的抽象,存儲在磁盤上】如果需要訪問某頁的數據,就會把完整的頁數據加載到內存中【即使只訪問頁中的一…

springboot和springcloud的區別

1. ?目的與功能? ?1)Spring Boot?: 主要用于快速構建獨立的、生產級的 Spring 應用程序。它通過自動配置和嵌入式服務器等特性,簡化了微服務的開發、啟動和部署,使開發者能夠專注于業務邏輯而非繁瑣的配置。?Spring Boot是一個快速開發的框架,旨在簡化Java應用程序的開…

耘想WinNAS:以聊天交互重構NAS生態,開啟AI時代的存儲革命

一、傳統NAS的交互困境與范式瓶頸 在傳統NAS(網絡附加存儲)領域,用戶需通過復雜的圖形界面或命令行工具完成文件管理、權限配置、數據檢索等操作,學習成本高且效率低下。例如,用戶若需搜索特定文件,需手動…

在斷網的時候,websocket 一直在CLOSING 狀態

現象 websocket 先連接成功,然后斷網。 由于維護了一套心跳機制,前端發起心跳,如果一段時間內沒有收到服務端返回的心跳。則表示連接斷開。 用心跳的方式處理斷網的兜底情況。 然而,此時網絡是斷開的,在代碼中直接調…

基于AWS的大模型調用場景:10大成本優化實戰方案

大模型訓練與推理是AI領域的計算密集型場景,如何在AWS上實現高性能與低成本的雙重目標?本文從實例選型、彈性伸縮、存儲優化等角度,分享10個經過驗證的AWS成本優化策略,幫助企業節省30%以上成本。 一、大模型場景的成本痛點分析 計…

【網絡原理】TCP/IP協議五層模型

目錄 一. 協議的分層 二. OSI七層網絡協議 三. TCP/IP五層網絡協議 四. 網絡設備所在分層 五. 封裝 六. 分用 七. 傳輸中的封裝和分用 八. 數據單位術語 一. 協議的分層 常見的分層為兩種OSI七層模型和TCP/IP五層模型 為什么要協議分層? 在網絡通信中&…