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

圖2-3 技術(shù)棧選型全景圖
(1)展示層:可以適配電腦端Web、手機(jī)端App或第三方調(diào)用API。
(2)網(wǎng)關(guān)鑒權(quán)層:使用Zuul作為API網(wǎng)關(guān),對(duì)調(diào)用進(jìn)行路由分發(fā)和權(quán)限校驗(yàn),基于SpringSecurity、Auth2和JWT的認(rèn)證鑒權(quán)技術(shù)。
(3)微服務(wù)層:分為前端微服務(wù)和后端微服務(wù)。前端微服務(wù)面向用戶業(yè)務(wù),為前端提供數(shù)據(jù);后端微服務(wù)面向數(shù)據(jù)庫(kù)、消息等組件,為前端微服務(wù)提供調(diào)用。
(4)編排與調(diào)度層:使用基于Rancher技術(shù)的Kubernetes編排管理集群Pod,使用Harbor做Docker的私有鏡像倉(cāng)庫(kù),使用OpenSSL對(duì)鏡像倉(cāng)庫(kù)服務(wù)進(jìn)行安全訪問(wèn)。
(5)存儲(chǔ)與消息層:為了使系統(tǒng)在部署到生產(chǎn)環(huán)境中之后依然能快速穩(wěn)定地運(yùn)行,持久化層、消息、日志等組件先不部署在Kubernetes集群中,而采用獨(dú)立部署。
開(kāi)發(fā)技術(shù)棧主要使用GitLab做代碼管理、AngularJS做前后端分離、Spring Boot+Spring Cloud+Mybatis做微服務(wù)應(yīng)用開(kāi)發(fā)、Maven做模塊依賴和編譯構(gòu)建管理、Jekins做持續(xù)開(kāi)發(fā)集成部署的CI/CD管理、Sonar做代碼規(guī)范漏洞掃描等。
- Learning SQL Server Reporting Services 2012
- 觸摸屏實(shí)用技術(shù)與工程應(yīng)用
- 計(jì)算機(jī)組裝·維護(hù)與故障排除
- Apple Motion 5 Cookbook
- 計(jì)算機(jī)組裝與維修技術(shù)
- 單片機(jī)系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)教程
- Hands-On Motion Graphics with Adobe After Effects CC
- IP網(wǎng)絡(luò)視頻傳輸:技術(shù)、標(biāo)準(zhǔn)和應(yīng)用
- 微控制器的應(yīng)用
- 單片機(jī)原理及應(yīng)用
- 計(jì)算機(jī)組裝、維護(hù)與維修項(xiàng)目教程
- 創(chuàng)客電子:Arduino和Raspberry Pi智能制作項(xiàng)目精選
- 微服務(wù)架構(gòu)實(shí)戰(zhàn):基于Spring Boot、Spring Cloud、Docker
- Learning Microsoft Cognitive Services
- 計(jì)算機(jī)組裝與維護(hù)教程