常用的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等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
[完]
喜歡小編輕輕點個關注吧!