微服務的12個要素

2021-08-06 05:59:53 字數 945 閱讀 3929

在 《pro spring boot》第13章提到的。

1. codebase

從乙個**庫部署到多個環境。

2. dependencies

使用顯式的宣告隔離依賴。

3. config

在environment中儲存配置資訊,不許硬編碼。

4. backing services

把支援性服務看做是資源,通過url或者配置連線。支援性服務包括資料庫、訊息佇列、緩衝伺服器等。後台資源,可以方便的替換。比如更換資料庫。

5. build, release, run

嚴格的劃分編譯、構建、執行階段,每個階段由工具進行管理。持續整合,持續部署。服務構建完成後,開發不能隨意修改**。所有修改需要走構建的流程。

6. processes

應用必須為無狀態。服務可以隨意啟動,停止,而不用擔心丟失資料。

7. port binding

經由埠繫結匯出服務。乙個應用可以成為另乙個應用的服務。服務自帶執行時容器。可以命令列啟動,並通過http對外提供服務。

8. concurrency

併發性使用水平擴充套件實現,對於web就是水平擴充套件web應用實現。不要依賴於單台伺服器多執行緒模型。啟動多個微服務。水平擴充套件。

9. disposability

服務可丟棄行,應用健壯性。快速啟動,並可以平穩關閉。以及錯誤容忍性。

10. environment parity

開發和生產環境保持高度一致,一鍵式部署。保證高質量,持續發布。

11. logs

將日誌看做是事件流來管理,所有參與的服務均使用該方式處理日誌。

12. admin processes

管理任務作為一次性的過程執行。例如 db migrations,一次性執行的指令碼等。開發人員不能隨意執行這種任務。需要使用源**倉庫管理。而且這些指令碼必須可重複執行,也不需要為不同的環境做特殊的改變。

第 01 章 微服務簡介(1 2)

andy yu發表於 2018 08 26不幸的是,這種簡單的方法有很大的侷限性。成功的應用有乙個趨勢,隨著時間推移而變得越來越臃腫。您的開發團隊在每個衝刺階段都要實現更多的使用者需求,這意味著需要新增了許多行 幾年之後,小而簡單的應用將會逐漸成長成乙個龐大的單體。為了給出乙個極端示例,我最近和一位...

微服務 關於微服務的思考

通過kafka進行日誌收集,並結合elk進行日誌聚合 並通過日誌展示平台進行管理 引入elasticsearch 將所有微服務的資料庫需要查詢的資料同步到es中,增刪改仍然保持原有的mybatis運算元據庫 目前微服務之間的呼叫 bff呼叫基礎服務 使用的是rest請求方式,本質上還是http協議,...

建立微服務架構的步驟 通向微服務成功的五個步驟

微服務是乙個很熱門的話題,現在已經有數百個各種形式的會議,網路研討會 流 和網路文章到處是。因此,你會以為每個人都已經意識到微服務提供的好處以及風險。然而,許多公司在沒有事先準備的情況下一下跳入微服務這一趨勢。實際上導致了很多失敗。乙個智者曾經說過,在業務中使用的任何技術的第一條規則是自動化適用放大...