記錄Spring Cloud應用在阿里雲架構部署

常用的Spring Cloud體系架構

系統部署採用阿里雲平臺,採用的技術架構爲SpringCloud.

採用在線阿里雲架構製圖工具: Freedgo Design 地址:https://www.freedgo.com, 具體架構如下:
在這裏插入圖片描述

整體架構

主要居於Spring Cloud的分佈式微服務架構。主要功能包括:

服務註冊發現中心(Eureka server)

通過服務發現可以抽象出部署服務的物理位置如IP,服務調用通過了邏輯名稱而不是實際的物理位置,同時服務發現也處理了註冊和註銷。

服務配置中心(config server)

通過集中式的服務來處理應用程序配置數據。做到無論啓動多少個微服務實例,這些實例始終使用相同的配置,同時服務的配置可以和微服務系統分離

服務網關(ZUUL)

通過ZUUL網關,可以強制執行一些功能如內容過濾,路由轉發,過濾器等等

Spring Sleuth & ZIPKIN(分佈式服務跟蹤)

通過Sleuth 相關ID進行全鏈路跟蹤,可以分析服務調用的性能

事件驅動及異步消息

用於處理異步事件如短消息推送,郵件發送等。

用戶認證中心(auth2)

ZUUL網關

ZUUL網關主要的功能

路由及過濾器設置

通常在ZUUL網關設置過濾器包括前置過濾器、後置過濾器、路由過濾器,可以自定義一些邏輯,在大多數情況下,這種自定義邏輯用於強制執行一組一致的應用程序策略,如安全性、日誌記錄和對所有服務的跟蹤等等。

路由的設置可以指定路由地址URL對應的微服務如下圖:
在這裏插入圖片描述

服務註冊與發現:

ZUUL網關服務器通過註冊到Eureka服務器,實現了Eureka上註冊的微服務的發現從而轉發用戶的請求到各應用模塊,網關服務器中Ribbon同時會緩存微服務相關信息以減少對EureKa訪問。

微服務應用

Oauth2授權訪問

ZUUL網關負責請求的路由轉發,Request請求不僅僅來在用戶瀏覽器,有可能是微服務之間的相互調用。

登錄用戶請求或服務之前調用會在request請求頭中攜帶Authorization 頭信息來表示當前用戶的身份信息,

Http Restful Api

微服務應用採用 Spring RestController 對外發布 Http Restful Api服務,

微服務之間的調用

微服務之間相互調用而不必知道被調用者所在位置是通過Eureka服務發現實現,當微服務啓動時會註冊自己到Eureka服務中心,服務消費者可以使 Ribbon 來進行交互。有三種方式的調用:

Spring DiscoveryClient
啓用了 RestTemplate 的 Spring DiscoveryClient
通過 Netflix Feign 客戶端方式
部署方案(docker)

採用Docker通過spotify 的docker-maven-plugin工具進行docker image進行打包鏡像

灰度測試

通過ZUUL的過濾對新上線的服務做路由的權重算法,做到限流,A/B測試。

平臺開發

開發語言:java,Java是一種可以撰寫跨平臺應用程序的面向對象的程序設計語言。
開發工具:eclipse,Eclipse 是一個開放源代碼的、基於Java的可擴展開發平臺。就其本身而言,它只是一個框架和一組服務,用於通過插件組件構建開發環境。
主要使用的開源軟件
軟件功能版本
在這裏插入圖片描述

歡迎工作一到五年的Java工程師朋友們加入Java技術交流:728821520
羣內提供免費的Java架構學習資料(裏面有高可用、高併發、高性能及分佈式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
[完]
喜歡小編輕輕點個關注吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章