官术网_书友最值得收藏!

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容器的系統邏輯架構主要分為展示層、網關鑒權層、微服務層、編排與調度層、存儲與消息層。

img

圖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做代碼規范漏洞掃描等。

主站蜘蛛池模板: 镇坪县| 巩留县| 佛教| 城口县| 天台县| 泾源县| 寿光市| 呼伦贝尔市| 平原县| 志丹县| 沙湾县| 台前县| 浙江省| 新干县| 伊通| 海南省| 兴国县| 霍城县| 鹤庆县| 修水县| 若尔盖县| 铜山县| 海丰县| 喀什市| 清河县| 湘乡市| 龙口市| 平舆县| 兰西县| 丰镇市| 辽中县| 玉屏| 开江县| 镇远县| 扎兰屯市| 平和县| 兴安盟| 新龙县| 阿勒泰市| 纳雍县| 勃利县|