SpringBoot—微服務架構

參考鏈接:
純潔的微笑——一文讀懂 Spring Boot、微服務架構和大數據治理三者之間的故事
微服務架構設計

前言:微服務這個概念今天鬧得很火啊,到處是微服務架構。什麼Docker啊,什麼MicroService Architecture啊……
其實微服務這種想法在幾年前就早就開始了,出現的原因是隨着軟件系統的更新迭代的速度不斷的加快,我們需要經常性地修復和完善一些功能,這迫使我們去重新構建一種新的架構——微服務架構。

那麼什麼是微服務呢?

微服務的誕生並非偶然,它是在互聯網高速發展,技術日新月異的變化以及傳統架構無法適應快速變化等多重因素的推動下誕生的產物。互聯網時代的產品通常有兩類特點:需求變化快和用戶羣體龐大,在這種情況下,如何從系統架構的角度出發,構建靈活、易擴展的系統,快速應對需求的變化;同時,隨着用戶的增加,如何保證系統的可伸縮性、高可用性,成爲系統架構面臨的挑戰。

如果還按照以前傳統開發模式,開發一個大型而全的系統已經很難滿足市場對技術的需求,這時候分而治之的思想被提了出來,於是我們從單獨架構發展到分佈式架構,又從分佈式架構發展到 SOA 架構,服務不斷的被拆分和分解,粒度也越來越小,直到微服務架構的誕生。

微服務架構是 SOA 架構的傳承,但一個最本質的區別就在於微服務是真正的分佈式的、去中心化的。把所有的“思考”邏輯包括路由、消息解析等放在服務內部,去掉一個大一統的 ESB,服務間輕通信,是比 SOA 更徹底的拆分。微服務架構強調的重點是業務系統需要徹底的組件化和服務化,原有的單個業務系統會拆分爲多個可以獨立開發,設計,運行和運維的小應用,這些小應用之間通過服務完成交互和集成。

大約 2009 年開始,Netflix 完全重新定義了它的應用程序開發和操作模型,拉開了微服務探索的第一步,直到2014年3月 Martin Fowler 寫的一篇文章 Microservices 以更加通俗易懂的形式爲大家定義了什麼是微服務架構。Martin Fowler 在文中闡述了對微服務架構的設想,認爲微服務架構是一種架構模式,它提倡將單一應用程序劃分成一組小的服務,服務之間互相協調、互相配合,爲用戶提供最終價值。

每個服務運行在其獨立的進程中,服務和服務間採用輕量級的通信機制互相溝通(通常是基於 HTTP 的 RESTful API)。每個服務都圍繞着具體業務進行構建,並且能夠被獨立地部署到生產環境、類生產環境等。另外,應儘量避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合適的語言、工具對其進行構建。

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