哈喽各位同學們大家好呀,小編今天帶着開發者學院中課程“微服務架構的經典開發架構”幹貨總結來了~一起學習新課程吧!
課程連結以及圖譜位址小編已經為大家指路了,搭配學習效果更佳👇
課程名稱:微服務架構的經典開發架構
課程位址:
https://developer.aliyun.com/learning/course/60/detail/1110圖譜名稱:Alibaba Java 技術圖譜
圖譜位址:
https://developer.aliyun.com/graph/java微服務架構的經典開發架構
各位同學大家好,我們繼續來學習微服務架構設計課程,咱們今這一節課來講一下微服務架構,經典的開發架構,咱們這個系列課程是以Java Spring Cloud的為主導的重點的開發架構,目前微服務生态經過5年以上的這種發展曆程,其中也出現了其他語言,包括Java本身Spring Cloud也在不斷疊代,也出現新的貢獻微服務架構的架構。
Spring Cloud是出現的時間比較早架構,并且它的生态也是最完善的,咱們選擇了Spring Cloud作為目前我們課程的主要的實踐案例的練習的架構。
下面一起來看下微服務架構有哪些經典的開發架構,以及他們有什麼差異,做實際的項目選擇的時,大家應該怎麼來進行選擇。如果技術選型的話,可能直接會影響後面一個架構的落地,因為有些架構并非完善,需要話很大精力去處理相同的問題。
- 微服務架構的開發架構
1. Spring Cloud:最早最成熟,Java開源微服務架構方案
2. Dubbo : 阿裡巴巴開源Java服務治理架構
3. Spring Cloud Alibaba 阿裡開源Java微服務架構方案
4. SOFA:螞蟻金服開源Java金融微服務架構方案
5. Go Micro:Go語言開源微服務架構
6. Seneca Microservices ,Node.js微服務架構
7. KumuluzEE:Java的微服務架構
8. Enduro/X: C/C++/Go

目前Spring Cloud是最早的開源的版本,主要幾個核心架構是誰貢獻的呢?是叫麥飛美國的視訊網站公司,他們把自己公司内部實踐的開發的微服務的解決方案架構貢獻給了社群。它主要也是想展現雲計算的這樣的時代的特征,這個核心架構基本上都是用 Java來進行編寫的,而且也現經過這麼多年的發展,目前在全球範圍内來看的,它是最成熟的一套生态。像國内的阿裡巴巴、螞蟻金服、京東、微網誌、拼多多、美團等新崛起的網際網路公司都在使用 Spring Cloud微服務架構體系。
像淘寶、阿裡的發展實際代表、Java或者來講分布式架構,不斷發展曆程。淘寶做雙十一在商業上非常成功營運模式,但是它在另外一個技術層次來說是倒逼着阿裡的技術團隊去不斷的迎接各種技術挑戰,并解決這些問題。
除了Dubbo以外,内部還有hsf架構,早期是解決大規模服務治理的問題,後面進行在内部不斷優化協定、性能。Dubbo在開源以後,國内有很多網際網路公司都在用,影響也比較大。作為微服務架構設計的選型的話,Dubbo不會作為首選,但是Dubbo是一個有效的補充。它的優點:經過阿裡巴巴集團大規模驗證、在不斷的疊代、支援高頻發,成為響應式框響應式架構、Java在不斷的更新演化,Dubbo也不例外,協定支援的更多。
并不是所有的場景,用HTTP協定是最優秀的,後續Spring Cloud的版本或者其他的微服務架構,會在協定,通訊協定,資料格式類型嘗試做一些優化,因為阿裡打包開源一些列的微服務給Spring Cloud作為貢獻的一部分。外國就是麥飛,國内就是阿裡巴巴作為最大的貢獻者。像螞蟻金服的SOFA、GO語言的Go Micro都是仿制Spring Cloud。生态都不是很完善,沒辦法和Spring Cloud一樣的流行,成熟。Java并不是強在文法,開發工具都不是最好的,強在架構和生态,更新模式。新的設計模式的書都是率先在Java實踐出來的。
- 微服務開發架構對比
服務架構本身也有存在各種差異,Spring Cloud是出現最早的,最成熟最完善的一套微服務架構綜合解決方案。它協定上HTTP為主,國内外公司大部分都在使用。阿裡的Dubbo也開源了,并向微服務進發,開始也支援其他的架構的內建。雖然Go語言和C++都有微服務架構,但是出現的比較晚,生态并不是太完善。作為微服務架構師來說,Spring Cloud和Dubbo體系最完善。
- Spring Cloud微服務架構生态最完善、最成熟
另外Spring Cloud本身成長于Java Spring整個平台體系中來,之前Java Spring積累的所有生态工具都可以拿過使用。可快速開發、內建、安全設計子產品工具、容器的工具可直接使用。加上國内網際網路公帶頭擴充實踐落地。Spring Cloud是架構選型風險成本最低的。如需單獨開發新的架構或者新的協定,費時費力。所有的技術發展一定是和公司的業務發展緊密結合,工程師本身是幫别人去開發系統解決問題的。做架構師的話選型一定要選成熟的、完善的、風險最小的、資料多的,遇到問題的時候更容易解決問題。
Java Spring開發平台
Spring Boot、Spring Data 都在協助Spring Cloud維護開發,擁有一套很大,并完善生态。
- Spring Cloud微服務架構
架構它是在不斷疊代不斷發展的,微服務開發的話不僅僅是 Spring VC或者Spring Boot,還有各種工具 ,也可以來開發這種微服務,實作各種需求:網關、熔斷、注射、包括資料庫互動、前端對應APP、小程式。微服務拆分好處在于走小塊零的路線,也可以單獨進行部署。比如:有的系統訂單服務支付服務用的比較多,比如淘寶單獨做大規模叢集,客服投訴服務使用就比較少,拆分之後占用的伺服器少。拆分的原因取決業務需求,存在差異之後,可以分開處理問題。
每個環節解決不同的問題,無論是注冊、發現、部署、網關都有自己的對應解決方案架構。
目前的話就是選型的話,首推是Spring Cloud,因為是一個成熟完善的生态。在技術選型的時候還要尊重業務需求、技術落地、風險問題、考慮公司研發成本等綜合考慮,單單是自己語言的喜好的問題。
目前來講,這裡面給大家介紹了系統各個不同語言的微服務開發方向,但是目前Spring Cloud還是最成熟最完善的。下節課的話咱們也看看微服務架構裡面經典的設計模式,包括我們整個的拆分的微服的一些原則。