- 微服務容器化開發實戰
- 尹為強
- 726字
- 2020-10-30 15:17:08
2.2 技術棧選型
如2.1節介紹,通過對比Dubbo服務框架和Spring Cloud微服務框架的異同之處,服務調用侵入性以及社區成熟度和活躍度等,選擇Spring Cloud微服務框架作為微服務開發的基礎框架。微服務運行在Docker容器中具備天然的優勢,而Docker容器服務編排的領導者是Google公司開發的Kubernetes。考慮到Spring Cloud和Kubernetes都具備服務注冊發現、路由與負載均衡、配置管理等能力,所以筆者的生產項目只使用了Spring Cloud微服務框架的網關組件、調用鏈追蹤組件、熔斷組件這3個組件,其余使用Kubernetes提供的能力。
基于Oracle、Weblogic等單體架構的項目,在進行微服務容器化改造時,為了能夠實現快速開發遷移、方便部署運維、擴容簡單等特性,技術棧選型主要涉及開發、編譯、測試、部署、服務編排等。
如圖2-3所示,技術棧選型分為運行技術棧(左側線框)和開發技術棧(右側線框)。基于Docker容器的系統邏輯架構主要分為展示層、網關鑒權層、微服務層、編排與調度層、存儲與消息層。

圖2-3 技術棧選型全景圖
(1)展示層:可以適配電腦端Web、手機端App或第三方調用API。
(2)網關鑒權層:使用Zuul作為API網關,對調用進行路由分發和權限校驗,基于SpringSecurity、Auth2和JWT的認證鑒權技術。
(3)微服務層:分為前端微服務和后端微服務。前端微服務面向用戶業務,為前端提供數據;后端微服務面向數據庫、消息等組件,為前端微服務提供調用。
(4)編排與調度層:使用基于Rancher技術的Kubernetes編排管理集群Pod,使用Harbor做Docker的私有鏡像倉庫,使用OpenSSL對鏡像倉庫服務進行安全訪問。
(5)存儲與消息層:為了使系統在部署到生產環境中之后依然能快速穩定地運行,持久化層、消息、日志等組件先不部署在Kubernetes集群中,而采用獨立部署。
開發技術棧主要使用GitLab做代碼管理、AngularJS做前后端分離、Spring Boot+Spring Cloud+Mybatis做微服務應用開發、Maven做模塊依賴和編譯構建管理、Jekins做持續開發集成部署的CI/CD管理、Sonar做代碼規范漏洞掃描等。
- 辦公通信設備維修
- 深入淺出SSD:固態存儲核心技術、原理與實戰
- Deep Learning with PyTorch
- 從零開始學51單片機C語言
- Intel Edison智能硬件開發指南:基于Yocto Project
- Istio服務網格技術解析與實踐
- 基于PROTEUS的電路設計、仿真與制板
- Hands-On Deep Learning for Images with TensorFlow
- 嵌入式系統原理及應用:基于ARM Cortex-M4體系結構
- 觸摸屏應用技術從入門到精通
- Blender for Video Production Quick Start Guide
- 嵌入式系統設計大學教程(第2版)
- 微服務架構基礎(Spring Boot+Spring Cloud+Docker)
- 計算機應用基礎案例教程(Windows 7+Office 2010)
- 多媒體應用技術(第2版)