Spring Boot和Spring Cloud尖銳面試題,你答的上來嗎?

  • 2019 年 10 月 5 日
  • 筆記
  • 什麼是 spring cloud

spring cloud 可以認為是一種分散式服務的框架,它為開發人員提供了快速構建分散式

系統的常用模式的一些工具,比如說配置管理、服務的註冊與發現、服務調用的負載均衡、資源隔離、熔斷降級等等,spring cloud為這些提供了一陣套完整的解決方案。

  • spring cloud 斷路器的作用是什麼?

在分散式環境下hystrix通過添加延遲容錯和失敗容差邏輯來幫助我們處理服務之間的交互。它會隔絕各服務間的調用,防止出現雪崩現象並提供fallback失敗備用方案,以此提高我們服務集群的彈性。同時使系統具有自動降級和自動恢復服務的效果

  • spring cloud 的核心組件有哪些?

1、Eureka是微服務架構中的註冊中心,專門負責服務的註冊與發現。

2、Ribbon的作用是負載均衡,會幫你在每次請求時選擇一台機器,均勻的把請求分發到各個機器上,默認使用Round Robin輪詢演算法;

3、Hystrix是隔離、熔斷以及降級的一個框架。發起請求是通過Hystrix的執行緒池來走的,不同的服務走不同的執行緒池,實現了不同服務調用的隔離,避免了服務雪崩的問題;

4、Zuul也就是微服務網關。這個組件是負責網路路由的,一般微服務架構中都必然設計一個網關在裡面,像android、ios、pc前端、微信小程式、h5等,不用關心後端有幾百個服務,就知道有一個網關,所有請求都往網關走,網關會根據請求中的一些特徵,將請求轉發給後端的各個服務。有一個網關之後,還有很多好處,比如做統一的降級、限流、認證授權、安全等等。

  • Spring Boot解決的問題

(1) Spring Boot使編碼變簡單

(2) Spring Boot使配置變簡單

(3) Spring Boot使部署變簡單

(4) Spring Boot使監控變簡單

(5) 解決了Spring的不足

  • Spring Boot的主要特性

(1)遵循「習慣優於配置」的原則,使用Spring Boot只需要很少的配置,大部分的時候我們直接使用默認的配置即可;

(2)項目快速搭建,可以無需配置的自動整合第三方的框架;

(3)可以完全不使用XML配置文件,只需要自動配置和Java Config;

(4)內嵌Servlet容器,降低了對環境的要求,可以使用命令直接執行項目,應用可用jar包執行:java -jar;

(5)提供了starter POM, 能夠非常方便的進行包管理, 很大程度上減少了jar hell或者dependency hell;

(6)運行中應用狀態的監控;

(7)對主流開發框架的無配置集成;

(8)與雲計算的天然繼承;

  • Spring Boot的核心功能有哪些

(1)獨立運行的Spring項目

(2)內嵌的Servlet容器

(3)提供starter簡化Manen配置

(4)自動配置Spring

(5)應用監控

(6)無程式碼生成和XML配置