- 微服務容器化開發實戰
- 尹為強
- 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做代碼規范漏洞掃描等。
- 電腦維護與故障排除傻瓜書(Windows 10適用)
- SDL Game Development
- Learning Stencyl 3.x Game Development Beginner's Guide
- Svelte 3 Up and Running
- 分布式微服務架構:原理與實戰
- R Deep Learning Essentials
- 單片機開發與典型工程項目實例詳解
- FreeSWITCH Cookbook
- Mastering Machine Learning on AWS
- Building Machine Learning Systems with Python
- 微服務實戰
- 計算機應用基礎案例教程(Windows 7+Office 2010)
- 從企業級開發到云原生微服務:Spring Boot實戰
- 多媒體應用技術(第2版)
- 零基礎輕松學修電腦主板