微服務分布式電商項目學習筆記(二)---- 微服務架構圖+微服務划分圖(2020/7/1)


微服務架構圖+微服務划分圖(2020/7/1):

1、微服務架構圖

1.1 關鍵部分簡介

1、外網部署:就是面對公眾訪問的進行外網部署

2、內網部署:我們整個后台的集群都通過內網部署

3、客戶端:可以是手機,電腦等

4、ngnix:負責將客戶端發來的請求進行轉發給后台

5、網關:在這里使用的SpringCloud Gateway,用於處理請求

6、認證中心:登錄時的認證以及鑒權,系統的安全框架,這里使用的是SpringSecurity

7、業務集群:包含我們項目中所有實現的待功能,注意,不同的業務會部署在不同的主機上,服務之間的調用需要通過Feign

8、注冊中心:所有的服務都會在注冊中心中注冊,這里使用的nacos注冊中心

9、配置中心:每個子服務可以動態的在配置中心獲取配置信息,這里使用的nacos配置中心

10、服務追蹤:跟蹤記錄用戶請求都發起了哪些調用,可以根據記錄發現系統的弱點在哪兒,進而可以針對性的進行優化。

11、Redis集群:用作緩存,或者是用作分布式的緩存

12、MySql集群:用於數據的持久化操作,存儲數據

13、RabbitMQ:消息中間件,可以用作不同服務中數據的交換,大大降低了耦合度。

14、全文檢索: Elasticsearch是一個開源的高擴展的分布式全文檢索引擎,它可以近乎實時的存儲、檢索數據;本身擴展性很好,可以擴展到上百台服務器,處理PB級別的數據。

1.2 服務過程

  客戶通過客戶端發送一個請求,請求通過ngnix轉發,ngnix將我們的請求轉交給API網關(使用SpringCloud的GateWay),網關可以直接通過路由動態的請求到后台的服務,也可以通過負載均衡(SpringCloud的ribbon)轉發請求訪問業務集群,其中要經過SpringSecurity的安全驗證,這里使用的SpringSecurity進行的登錄(認證)操作以及鑒權操作,由於業務是做的集群,不同的服務要分布在不同的服務器上,因此需要一個注冊中心來注冊這些服務,當不同的業務服務之間進行調用通信時,可以通過注冊中心進行服務發現,進而可以進行精確定位的調用;在一些大型的項目中,為了防止服務宕機導致某個服務不能使用影響到整個系統,我們通常將同一種服務運行在不同的服務器上,這樣即使其中一台服務器宕機了,我們依舊可以使用剩余的服務器,能夠保證系統的正常運行,如果這些相同的服務配置文件發生變化時,依次修改比較麻煩,因此需要一個配置中心,進行統一的服務配置,子服務可以動態在配置中心獲取配置,不需要再依次的修改了,提高了效率也提高了安全性准確性。而服務追蹤在整個系統中起到了一個監控的作用,實時的追蹤用戶的請求調用,另外,這個系統使用了redis進行了緩存服務,可以應對高並發的場景,使用mysql做了數據持久化的操作,這里mysql使用了集群的方式,可以進行讀寫分離的操作,可以起到數據備份以及讀寫效率提高的好處,並且即使其中的一台mysql宕機了,我們依舊可以使用其他的mysql,不過此時的主從關系可能會發生變化。而使用了rabbitMq作為消息中間件,對於不同服務間的數據交換而不進行業務影響操作起到比較好的作用,可以降低耦合度,提高效率。另外,我們的整套代碼使用了gitHub進行了管理,而運行發布則使用了docker,而后期的運維部署則使用了jenkins管理工具。

 

2、微服務划分圖

 

寫在后面:本篇的服務過程是按照個人的理解一字字敲打的,可能存在錯誤,要是有不對的地方,請在評論區評論,多多指教。

 

學習視頻觀看網址:https://www.bilibili.com/video/BV1np4y1C7Yf?p=5

如果你覺得這篇博客有用,請點個贊再走吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM