當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot_入门-微服务简介
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot_入门-微服务简介
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前面我們介紹了Springboot,就不得不說他所處的大環境背景,微服務,什么是微服務呢,我們在這介紹一下,微服務其實在2014年的時候,有一個人,叫martin fowler,但是他不是微服務的創始人,只是他發布了一個關于微服務的博客,然后非常形象生動的,介紹了整個微服務的設計思想,然后微服務才慢慢的被熟知,就在他的個人主頁里邊https://martinfowler.com這里有一篇關于微服務的文章,https://martinfowler.com/microservices/也就是這篇文章"Microservices" became the hot term in 2014, attracting lots of attention as a new way to think about structuring applications. I'd come across this style several years earlier, talking with my contacts both in ThoughtWorks and beyond. It's a style that many good people find is an effective way to work with a significant class of systems. But to gain any benefit from microservice thinking, you have to understand what it is, how to do it, and why you should usually do something else.大家可以慢慢來閱讀,通過整片文章的介紹,我們就能知道,什么是微服務,當然我們就不詳細的來讀這個了,What are Microservices?
In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.-- James Lewis and Martin Fowler微服務他其實是一個架構風格,比如14年的時候,martin fowler他來告訴我們,微服務他其實是一個架構風格,那么這種架構風格,有什么不同呢,他在我們開發一個應用的時候,應該是小服務的組合,一個應用應該是一組小型服務,而這些小型服務呢,每個服務都運行在自己的進程內,小型服務可以通過HTTP的方式,來進行溝通,輕量級的溝通方式,那么說起這個微服務,就得說一下之前的架構,單體應用,就是大名鼎鼎的All in one,所有的東西都寫在一個引用里邊,比如就像我們這個樣子,我們要開發一個應用,不管是OA,CRM,ERP系統,我們以前都是來創建一個應用,將所有的頁面,也放到這兒,包括代碼也寫在應用里面,然后把整個應用打包,war包部署到tomcat里邊,我們這個應用訪問數據庫,提供前端訪問的頁面,那么這應用就跑起來,這是我們傳統的WEB應用架構模式,而這種模式呢,也有非常多的優點,比如開發測試簡單,由于都是一個應用,不牽涉到多個應用的互聯互調,所以我們開發和測試都非常簡單,而我們這個部署也簡單,我們想要把應用部署上去,只需要把一個應用打成一個war包,就行了,然后把war包放到服務器上,不會給運維造成很大的困難,包括水平擴展,也是比較簡單的,當我們應用的負載能力,不行的時候,我們把相同的應用,我來復制上十幾份,放在10幾個服務器里邊,那么我們十幾個服務器,都來跑我們這個程序,我們通過負載均衡機制,就可以來提高我們的并發能力,這個是我們以前單體應用,所有都在一個里面,他所帶來的問題呢,這個是牽一發而動全身的問題
有可能因為我們一個小小的修改,整個應用都得重新部署,都得重新運行,當然更大的挑戰,是我們日益增長的軟件需求,我們現在隨便一個應用,都有可能成為一個大型應用,而大型應用呢,不可能就一個應用,我們把它Allin one全寫在里邊,那這個應用有多大,該怎么維護,該怎么分工合作,這完全都是一些問題,所以接下來介紹微服務,所謂的微服務,就是打破以前的傳統方式,我們以前將所有的功能單元,放在一個應用里邊,然后我們把整個應用,部署到服務器上,如果負載能力不行,通過應用的水平復制,我把它擴展擴展,把同一份應用,復制過來,來進行訪問,但是我們微服務提倡的是什么呢,把每一個功能元素,應該獨立出來,這獨立出來以后呢,我們可以通過功能元素的動態組合,比如我們這個功能元素,需要多一點,那我們在這個服務器里邊,多放一點,這個少一點我們就少放一點,通過這些元素的動態組合,包括某一些功能,只有在有需要的時候,才進行復制,我們只是功能元素級別的問題,沒有復制到整個應用,這樣的話呢,一也是節省了我們的調用資源,我們把服務微化起來呢,每一個服務,都是一個可替換的,可獨立升級的
我們在這再說一下,每一個功能元素,最終都是一個可獨立替換,和獨立升級的軟件代碼,這就是我們說的,這個微服務
服務到底有多微,Matin fowler在整個文章里面,也有談及,他在這里與SOA進行了一個對比https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa從微服務的起源介紹,整個對比,對比介紹,包括服務我們要微化成什么樣,這一塊都會有提及,那我們詳細就不閱讀了,包括這里也有一個中文的文檔,大家來參照來閱讀,服務微化其實是業內一直有爭論的一個問題,詳細參照微服務文檔,微服務最終架構起來的應用,應該向這個樣子
微服務之間的組件該怎么工作呢,我們將每一個功能單元都獨立出來,每一個功能單元,比如這是結賬,這是購物,這是用戶模塊,獨立出來以后呢,接下來單元跟單元之間的互調,通過HTTP方式,進行互聯互調,這樣我們整個功能單元,不斷的微化,就形成了我們整個應用網,那么這個應用網呢,功能單元和功能單元之間通過HTTP方式,進行輕量級通信,那么其實看到這個東西,就感覺跟我們,大腦的神經元工作一樣的,每一個神經元和神經元,連接起來,如果是這么一張連接網,那我們后來可能會有一些問題,什么問題呢,那就是我們部署和運維,是相當不容易的,所以這就是一個大型的分布式應用,對我們部署和運維,帶來了非常大的挑戰,更重要的呢,在這兒,我們每一個功能單元,他都是一個完整的功能單元,比如這個功能單元,他來做一些緩存的,他需要來查緩存,他要連redis,這個功能單元呢,他是需要練數據庫的,那這個功能單元可能是連其他的,那怎么辦呢,可能每一個功能單元,如果真讓我們來微化,創建這么多的項目,來微化這些服務的時候,那每一個項目呢,可能都是需要我們整合各種場景,如果按照以前的方式,再來部建應用,那估計這么多模塊,我們光創建項目,搭建環境,可能一個月都做不完,那接下來怎么辦呢,我們來到Springboot的官網,Spring的官網,Spring官網里面有一個經典的圖,面對這么大型分布式的應用
我們怎么來構建一個應用,我們用Springboot,可以快速的來構建一個應用,然后這么大的分布式網之間,該怎么互調呢,我們用SpringCloud,我們進行網狀互聯互調,我們整個分布式做出來,那包括在分布式中間,要進行一些流式數據計算,Spring整個官方給我們想清楚了,應用的整個出路,從開始構建到大型分布式應用,包括在SpringCloud里邊,我們也有一些應用架構,都幫你考慮好了
?
總結
以上是生活随笔為你收集整理的SpringBoot_入门-微服务简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot_入门-Spring
- 下一篇: SpringBoot_入门-环境准备