面試題:微服務是什麼?springcloud,springboot是什麼?

面試刷題37:微服務是什麼?springcloud,springboot是什麼?

面試中被問到爲什麼要使用微服務架構?springcloud的核心組件有哪些?

拿我們國家的兵種來說,如何把戰爭這個單體架構微服務化,就是根據適用的場景,拆分出不同的兵種(微服務)

然後每個兵種之間通過軍區指揮部採用特有的通信協議連接起來(RPC) ;

每個兵種內部自治,有自己的業務,數據,部署單元(建制)對外提供打擊服務(HTTP)。

微服務
微服務是一種架構風格:

把單體系統拆分成各種微服務(進程集羣裏面),服務之間通過HTTP或者RPC協議進行通信。

服務內部是圍繞某一個問題領域的業務,有自己單獨的業務流程,數據存儲,自動化測試,和自動化獨立部署機制。

解決單體系統的難題:
開發端:部分業務的修改要修改整個項目, 開發維護成本高,容易出錯,不利於團隊協作;
運維線:部分業務的上線影響整體服務質量,運維無法精確評估系統資源的需求量;

帶來的問題:

1,運維需要維護數量龐大的進程;

2,接口的業務流程拉長,一致性比較更難以控制;

3,分佈式的複雜性:網絡延遲,異步消息,分佈式事務等;

基於敏捷項目管理和自動化部署可以應對這些問題。

springcloud整體介紹
基於springboot實現的微服務架構開發工具。

提供了這些分佈式問題的解決方案:

springboot帶來了什麼?
1,提供了一個開發微服務的腳手架(idea的initializer創建springcloud的微服務),減少了從0開始搭建項目的問題;

2,並非重寫spring或者替代spring,主要是提供了自動化配置簡化原有的樣板配置

3,快速開發,提供了各種starter集成其它的組件和解決依賴管理問題

4,輕鬆部署,內置了web容器,輕鬆跟docker融合;

涵蓋了項目的構建,開發,測試階段;

springboot快速使用
idea的initializer創建springcloud的微服務

開發一個rest接口

開發接口的單元測試代碼

例子代碼點我獲取!

工程結構

依賴處理
1, parent處理方式

2,dependencyManagemant處理方式

運行
1,java -jar x.jar 運行 正式環境

2,idea提供調試運行; 開發環境

3,maven的spring-boot:run插件運行  開發環境;

springboot配置
自動化配置是springboot最大的亮點。

配置的加載優先級如下:

1,命令行中的參數 ;

2, 系統環境變量中的SPRING_APPLICATION_JSON配置;

3,JNDI屬性: java:comp/env

4,java的操作系統屬性 System.getProperties();

5,  操作系統的環境變量

6,jar包外部的 application-${profile}.properties

7, jar包內部的 application-${profile}.properties

8, @Configuration註解修改過的類 @PropertySource註解定義的屬性

9, SpringApplication.setDefaultProperties()

多環境配置
application.properties放通用配置,指定激活 dev環境

在其他的環境中提供差異化的配置,發佈的時候通過命令行指定環境spring.profiles.active=prod;

springboot監控
微服務是的進程的數量增多,必須有一套自動化的監控運維機制來收集微服務的運行指標,進行監控和預警。

spring-boot-starter-actuator 來進行監控。

並配置開啓的端點。

常見的監控端點: /health /beans /mappings

小結
首先宏觀上回答了爲什麼微服務會出現,解決了什麼問題?

然後初步介紹了spring-cloud帶來了什麼?

接着從spring-cloud的基礎出發,即springboot分析了springboot帶來了什麼,簡單實用,配置和監控;

springboot帶來了什麼?

以及快速使用springboot開發接口的過程;

簡單介紹了 工程結構,依賴的處理方式 , 運行指令等細節;

然後基於配置,介紹了配置參數的加載順序,多環境下的最佳實踐。

最後介紹了微服務繼續的自動監控和運維機制 actuator ,收集微服務的端點信息。

原文地址https://www.cnblogs.com/snidget/p/12691636.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章