spring Could 高頻面試題

一、基礎概念

  1. Spring Cloud 的核心組件有哪些?

    • 答案:Eureka/Nacos(服務注冊發現)、Ribbon/LoadBalancer(負載均衡)、Feign/OpenFeign(聲明式HTTP客戶端)、Hystrix/Sentinel(熔斷限流)、Zuul/Gateway(API網關)、Config/Nacos(配置中心)、Sleuth/Zipkin(分布式鏈路追蹤)。
  2. Spring Cloud 與 Spring Boot 的關系?

    • 答案:Spring Boot 提供快速開發單微服務的能力;Spring Cloud 基于 Boot 構建分布式系統的工具箱,整合第三方組件(如Netflix OSS)實現微服務治理。

二、服務注冊與發現

  1. Eureka 和 Nacos 的區別?

    • 答案
      特性EurekaNacos
      一致性協議AP(最終一致性)AP + CP(可切換)
      配置管理???(集成配置中心)
      健康檢查客戶端心跳主動探測 + 心跳
      權重/元數據???
  2. Eureka 如何防止服務列表過期?

    • 答案
      • 客戶端每 30s 發送心跳到 Eureka Server。
      • Server 若 90s 未收到心跳,則將實例標記為過期并從注冊表移除。
      • 客戶端每 30s 從 Server 全量拉取服務列表(可配置增量同步)。

三、服務調用與負載均衡

  1. Ribbon 的負載均衡策略有哪些?

    • 答案
      • RoundRobinRule(輪詢)
      • RandomRule(隨機)
      • WeightedResponseTimeRule(響應時間加權)
      • ZoneAvoidanceRule(區域優先)
  2. Feign 的工作原理?

    • 答案
      1. 通過 @EnableFeignClients 掃描接口;
      2. 為接口生成動態代理
      3. 調用時拼接 HTTP 請求,由 Ribbon 負載均衡選擇實例;
      4. 默認使用 JDK 的 HttpURLConnection 發送請求(可替換為 OKHttp)。

四、熔斷與限流

  1. Hystrix 熔斷器的狀態轉換流程?

    • 答案
      • 關閉(Closed):請求正常通過。
      • 打開(Open):錯誤率超閾值(默認50%),熔斷開啟,請求直接失敗。
      • 半開(Half-Open):熔斷一段時間后,嘗試放行部分請求,若成功則關閉熔斷。
  2. Sentinel 對比 Hystrix 的優勢?

    • 答案
      • 實時監控:集成 Dashboard 實時顯示 QPS/響應時間;
      • 規則持久化:支持推送到 Nacos/Redis;
      • 精細化控制:支持基于調用來源、熱點參數的流控;
      • 低開銷:基于滑動窗口的統計,性能損耗更低。

五、API 網關

  1. Spring Cloud Gateway 的過濾器類型?

    • 答案
      • Pre 過濾器:在路由前執行(如限流、日志);
      • Post 過濾器:在響應返回前執行(如修改響應頭);
      • 全局過濾器:作用于所有路由(如認證、請求記錄)。
  2. Gateway 如何實現動態路由?

    • 答案
      1. 集成 NacosRedis,監聽路由配置變更;
      2. 實現 RouteDefinitionRepository 接口,從數據庫讀取路由規則;
      3. 調用 RouteLocatorBuilder 動態刷新路由。

六、配置中心

  1. Spring Cloud Config 的配置刷新原理?

    • 答案
      • 客戶端通過 @RefreshScope 標記需要刷新的 Bean;
      • 調用 /actuator/refresh 端點 → 觸發 RefreshEvent 事件;
      • 銷毀舊 Bean 并重新初始化(依賴配置的 Bean會被重建)。
  2. Nacos 配置中心如何保證高可用?

    • 答案
      • 集群部署:至少 3 節點(推薦 Raft 協議);
      • 數據持久化:配置存儲到 MySQL(避免單點故障);
      • 客戶端緩存:本地緩存配置,即使 Server 宕機仍可運行。

七、分布式鏈路追蹤

  1. Sleuth 的 TraceId 傳遞原理?
    • 答案
      • 通過 HTTP HeaderX-B3-TraceId)傳遞;
      • 集成 Feign/RestTemplate 自動注入 Header;
      • 支持異步線程(LazyTraceExecutor 包裝線程池)。

八、場景設計題

  1. 如何設計一個服務雪崩防護方案?
    • 答案
      • 前端:請求限流(Nginx 層);
      • 網關:Sentinel 全局 QPS 限流 + 熔斷規則;
      • 服務間:Feign 整合 Hystrix(設置超時、線程隔離);
      • 數據庫:連接池控制(如 HikariCP 最大連接數);
      • 降級策略:返回兜底數據(如緩存中的舊數據)。

附:高頻追問問題

  • 為什么需要 API 網關?與 Nginx 的區別?
  • Spring Cloud Alibaba 與 Netflix 組件的替代關系?
  • 如何保證微服務之間調用的冪等性?
  • 分布式事務在 Spring Cloud 中的解決方案(Seata)?

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

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

相關文章

從零開始的云計算生活——番外6,使用zabbix對中間件監控

目錄 一.網絡設備監控 1、GNS模擬器的使用 創建路由 創建交換機 2.構建網絡 3.添加Cisco路由器的監控 二.中間件監控 1、MySQL數據庫監控 1.1、拷貝自定義的監控腳本到指定目錄 1.2、添加監控用戶 1.3、重啟zabbix-agent服務 1.4、在zabbix-server服務端測試數據 1…

haproxy七層均衡

一.haproxy的安裝和服務信息1.1實驗環境ip實驗設備172.25.254.100haproxy172.25.254.10RS1172.25.254.20RS2172.25.254.111client1.2軟件安裝及配置haproxy主機上配置#下載#進入此文件進行編輯#關閉防火墻RS1主機上配置#下載#生成默認文件#重啟#關閉防火墻RS2主機上配置#下載#生…

分類預測 | MATLAB實現CPO-SVM冠豪豬算法優化支持向量機分類預測

分類預測 | MATLAB實現CPO-SVM冠豪豬算法優化支持向量機分類預測 目錄 分類預測 | MATLAB實現CPO-SVM冠豪豬算法優化支持向量機分類預測 分類效果 基本介紹 算法步驟 參數設定 運行環境 應用場景 程序設計 參考資料 分類效果 基本介紹 該MATLAB代碼實現了基于冠豪豬優化算法(…

【MySQL 數據庫】MySQL基本查詢(第二節)

文章目錄📝Update🌉 將孫悟空同學的數學成績變更為 80 分🌉 將曹孟德同學的數學成績變更為60分,語文成績變更為70分🌉 將總成績倒數前三的3位同學的數學成績加上30分🌉將所有同學的語文成績更新為原來的2倍…

Axios 響應攔截器

1.定義:響應攔截器(Response Interceptor)是一個可以在 axios 接收到服務器響應后,響應數據交給 .then() 處理之前執行的函數。你可以用它來統一處理響應數據,進行錯誤處理,或者對返回的數據做格式化和轉換…

k8s的nodeport和ingress

1.流量轉發圖targerport轉發到實際的容器端口containerPort(后端端口)nodeportingress2.配置場景總結字段作用對象必填示例值何時配置containerPort容器否80需明確記錄容器端口時(推薦)targetPortPod是80定義 Service 轉發規則時p…

VLA:自動駕駛的“新大腦”?

🔥 什么是 VLA?為什么突然火了?在自動駕駛圈子里,最近一個詞特別火:VLA。它不是某個新車的型號,也不是某家公司的新品牌,而是一種全新的智能架構,被稱為“自動駕駛的大腦2.0”。&…

Linux操作系統之線程(八):信號量sem

前言:大家好啊,我們上一篇文章已經講解了關于線程同步的一種辦法:運用條件變量cond。今天,我們就來學習一下線程同步的另外一種方法,信號量!!信號量呢有System V 信號量與POSIX 信號量&#xff…

【RocketMQ】一分鐘了解RocketMQ

MQ是什么 MQ全稱為Message Queue,即消息隊列 ,是一種提供消息隊列服務的中間件,也稱為消息中間件,是一套提供了消息生 產、存儲、消費全過程的軟件系統,遵循FIFO原則。 MQ的好處有哪些 異步解耦 最常見的一個場景是…

01 01 01 第一部分 C++編程知識 C++入門 第一個C++程序

第一部分 C編程知識第一章 C入門 —— 第一個C程序一、第一個C程序代碼展示//寫一個C程序&#xff0c;實現在屏幕上打印 “hello world” #include <iostream> using namespace std; int main() {cout << "hello world" << endl;return 0; }二、…

進制定義與轉換詳解

文章目錄&#x1f4d8; 進制定義與轉換詳解一、進制的含義二、常見進制介紹1. 十進制&#xff08;Decimal&#xff0c;Base-10&#xff09;2. 二進制&#xff08;Binary&#xff0c;Base-2&#xff09;3. 八進制&#xff08;Octal&#xff0c;Base-8&#xff09;4. 十六進制&am…

【安卓筆記】用MVC、MVP、MVVM來實現井字棋案例

0. 環境&#xff1a;電腦&#xff1a;Windows10Android Studio: 2024.3.2編程語言: JavaGradle version&#xff1a;8.11.1Compile Sdk Version&#xff1a;35Java 版本&#xff1a;Java111. 首先、簡單實現井字棋的功能。功能拆解&#xff1a;1. 棋盤為3x32. 點擊棋盤button&a…

【洛谷】單向鏈表、隊列安排、約瑟夫問題(list相關算法題)

文章目錄單向鏈表題目描述題目解析代碼隊列安排題目描述題目解析代碼約瑟夫問題題目描述題目解析代碼單向鏈表 題目描述 題目解析 這道題因為有大量的任意位置插入刪除&#xff0c;所以肯定不能用數組&#xff0c;用鏈表是最合適的&#xff0c;而在算法競賽通常都用靜態鏈表&a…

當人機交互邁向新紀元:腦機接口與AR/VR/MR的狂飆之路

從手機到 “頭盔”&#xff1a;交互終端的變革猜想??在當今數字化時代&#xff0c;智能手機無疑是我們生活中不可或缺的一部分。它集通訊、娛樂、辦公等多種功能于一身&#xff0c;成為了人們與外界交互的主要窗口。然而&#xff0c;隨著科技的飛速發展&#xff0c;智能手機作…

InfluxDB HTTP API 接口調用詳解(二)

實際應用案例演示 1. 數據寫入案例 假設在一個物聯網設備數據采集場景中&#xff0c;有多個傳感器設備持續采集環境的溫度和濕度數據。我們以 Python 語言為例&#xff0c;使用requests庫來調用 InfluxDB 的 Write 接口將數據寫入 InfluxDB。 首先&#xff0c;確保已經安裝了…

世運會線上知識競賽答題pk小程序怎么做

隨著2025年成都世界運動會的來臨&#xff0c;越來越多的企事業單位組織員工進行線上知識競賽&#xff0c;那么答題PK小程序該怎么做&#xff0c;接下來我們來一一分析&#xff1a; 世運會線上知識競賽答題pk小程序怎么做一、答題功能&#xff1a;支持多種題型&#xff0c;如選擇…

Java畢業設計 | 基于微信小程序的家校互動作業管理系統(Spring Boot+Vue.js+uni-app+AI,附源碼+文檔)

Java畢業設計 | 基于微信小程序的家校互動作業管理系統&#xff08;Spring BootVue.jsuni-app&#xff0c;附源碼文檔&#xff09;&#x1f3af; 畢業設計私人教練 專注計算機畢設輔導第 6 年&#xff0c;累計 1v1 帶飛 800 同學順利通關。從選題、開題、代碼、論文到答辯&…

CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服務器

CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服務器 一、前言 由于 Jellyfin 的 GPL 協議和 Intel 的 media-driver (iHD) Linux 驅動&#xff08;部分開源&#xff09;在協議上不兼容的緣故&#xff0c;Jellyfin 官方的 Docker 鏡像&#xff1a;jellyfin/jellyfin 并不包含 …

PyTorch武俠演義 第一卷:初入江湖 第4章:損失玉佩的評分風波

第一卷&#xff1a;初入江湖 第4章&#xff1a;損失玉佩的評分風波比武開幕 晨鐘響徹山谷&#xff0c;PyTorch派三年一度的"模型比武大會"正式開始。各分舵弟子列隊入場&#xff0c;林小碼跟在Tensor大師身后&#xff0c;眼睛瞪得溜圓——只見&#xff1a; "卷積…

HttpServletRequestWrapper存儲Request

HTTP請求的輸入流只能被讀取一次&#xff0c;再想獲取就獲取不到了&#xff0c;那有什么方法可以緩存呢&#xff0c;我們可以自定義一個HttpServletRequest&#xff0c;或者是想在請求參數中統一添加或刪除參數也可以使用此類進行改造&#xff0c;然后通過過濾器繼續向下流轉。…