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

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ǔ)與消息層。

img

圖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ī)范漏洞掃描等。

主站蜘蛛池模板: 包头市| 鄂伦春自治旗| SHOW| 怀远县| 七台河市| 类乌齐县| 奎屯市| 长岛县| 新宾| 綦江县| 兴化市| 墨玉县| 德清县| 林西县| 天台县| 措勤县| 定兴县| 邵阳市| 大荔县| 江油市| 庆城县| 靖安县| 萨嘎县| 台北市| 黄石市| 桐庐县| 区。| 长垣县| 墨江| 闽清县| 苏尼特右旗| 昌都县| 龙州县| 牟定县| 侯马市| 文成县| 永宁县| 临泽县| 黎城县| 志丹县| 林西县|