大家好,從今天開始我會持續輸出微服務相關的文檔,其重要目的有幾個:1、在編程生涯留有痕跡,將自己的所理解的東西和大家分享;2、保持持續學習,輸出的過程也是學習的幾種方式,持續輸出能夠保證持續學習;3、保持充實的業餘生活,把工作當做生活,把編程當做樂趣。
這一次的主要主題是圍繞微服務框架,包括基礎環境,微服務框架、組件功能點和基礎功能;下面我們來看下主要涉及的內容。
環境
JDK
版本:1.8
下載地址:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
MAVEN
版本:3.6.3
下載地址:
http://maven.apache.org/download.cgi
IDEA
版本:2019.3.1
https://www.jetbrains.com/idea/download/#section=windows
SpringCloud
版本:Hoxton
官網地址:https://spring.io/projects/spring-cloud
架構
SpringCloud基礎架構
我們以SpringCloud爲基礎框架,再次基礎上做擴展,爲企業標準及框架爲目標,能夠適應不同的業務場景,能夠支持高併發、易擴容、能定位的框架,滿足7*24的不間斷服務升級。
基礎架構解讀:
1、外部系統瀏覽器、移動端、物聯網發送請求到應用網關;
2、應用網關做請求過濾,權限等校驗然後路由到微服務;
3、多個微服務註冊到註冊中心上面,應該網關通過註冊中心的發現機制負載到每一個服務;
4、所有的應用的配置文件統一由配置中心管理;
5、整個鏈路用分佈式鏈路追蹤記錄。
課程內容
基礎開發
前期我們會出框架的基礎開發的文章,包括一些列的基礎操作和模塊之間的整體,開發一個最基礎能完成業務功能的基礎框架;
-
WEB框架搭建:提供最小單元的web應用,web環境搭建、restful規範;
-
工程模塊劃分:基礎模塊劃分標準,解耦模塊之間的耦合程度;
-
模塊依賴:第三方依賴版本管理、基礎組件版本管理,maven生命週期、插件管理;
-
開發模式:MVC架構、DDD(領域驅動模型)架構還是MVC+DDD;
-
數據源和ORM框架集成:數據源、ORM框架集成配置,獨立成標準組件;
-
Swagger接口集成:Swagger集成、接口標準規範和測試;
-
本事事務:事務的幾種使用方式註解事務、編程式事務和事務隔離級別的切換;
-
單元測試:單元測試編寫、測試覆蓋率、功能點測試;
服務框架
這一章節我們主要介紹微服務相關的體系的內容,包括一些高可用支撐,高併發以及服務治理方面的內容。
-
註冊中心:服務註冊、服務發現、心跳檢測、自定義接口查詢;
-
配置中心:配置基礎、配置管理、多環境切換;
-
負載均衡:負載組件使用、負載算法;
-
超時重試:服務超時、服務重試機制;
-
服務熔斷:熔斷狀態、調用失敗率、熔斷處理;
-
服務限流:域限流、IP限流、接口限流;
-
服務降級:自動降級、開關降級、動態配置降級;
-
服務追蹤:鏈路標記、鏈路集成分析;
-
服務監控:系統級別監控、接口級別監控;
-
分佈式事務:事務模式選擇、集成案例;
框架功能點設計
這一章我們主要將構建企業級框架的開發和基礎功能功能,能給給業務通過通用能力,並提供擴展機制,以及在不同規模下有不同的解決方案。
-
統一異常處理:異常碼定義、統一異常管理、異常分類處理;
-
前後置處理:系統前後置處理、自定義前後置處理、可擴展機制;
-
日誌記錄:日誌流水記錄
-
異步消息處理:消息異步處理組件集成、消息外送;
-
接口防重處理:接口狀態記錄、防重處理;
-
系統緩存redis:系統級緩存、接口緩存;
-
服務組合:微服務組合、併發,組合編排;
-
代碼生成:基礎骨架代碼生成;
業務基礎公共實現
這一章我們主要會講基於業務框架開發一系列的基礎功能,後面如果有時間的再看看不同的業務場景下的功能使用。
-
登錄:用戶名和密碼校驗、次數校驗、合法性校驗、登錄數據記錄;
-
註冊:合法性校驗、密碼加密
-
用戶權限設計:用戶角色、功能角色;
-
公告:文章編輯發佈
-
短信/郵件/站內信:異步信息處理