您好,登錄后才能下訂單哦!
這篇文章主要介紹了微服務基本概念是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇微服務基本概念是什么文章都會有所收獲,下面我們一起來看看吧。
為什么會有微服務?
假如回到10年前,一天張三入職了電商企業—并夕夕商城。
公司初創,人比較少,公司網站的用戶也很少,公司只有一個工程師
項目架構比較簡單
沒有想到的是,公司業務越來越好,網站用戶量越來越大,單體架構的問題就暴露出來了,隨著訪問量增加,項目經常宕機
問題:架構簡單 難以抗住高并發
于是,招人。對并夕夕商城進行升級優化。
分析升級的方向:
數據庫 和 應用代碼要放在不同的服務器上
增加應用負載能力【集群】
于是增加負載均衡。
分布式:一個系統 通過多臺服務器 協同完成系統功能
集群:同一個系統放在了多臺服務器上 且每個服務器上內容相同 復制了多份
負載均衡的問題
成本
Session
增加負載均衡之后,應用服務器不再是系統的瓶頸了,可以靈活的隨著訪問量增大的同時增加應用服務器集群的數量。
隨著業務量不斷增加,數據量也在不斷增加,數據庫出現性能瓶頸。
招人
在多位同事努力之下,對項目進行進一步的優化—讀寫分離。
上述的架構看上去非常的完美,但是,隨著并夕夕商城業務量的不斷增加,新的問題暴露了出來。
問題:
商品搜索使用數據庫模糊查詢不行,不精確,慢 【全文檢索】
圖書查詢 模糊匹配
不同模塊的數據訪問的頻率是不一樣的(熱度不同),首頁數據訪問量比較大,訂單數據的訪問量相比之下要小很多。所有的數據都去數據庫取,影響首頁訪問速度 【緩存】
招人
所有的同事開始一起優化項目,商品搜索使用全文檢索技術ES完成,并且引入緩存(Redis集群),于是架構變成了這個亞子。
隨著并夕夕商城不斷壯大,公司迎來了風投,風投兩個億,于是商城發展的更快了,新的問題出現了。
問題:
不同業務模塊之間的耦合太高,一個模塊出問題整個服務器宕機
維護困難,假如應用服務器集群200臺,那么項目上線意味著需要部署200臺服務器
譬如:修改了訂單的代碼 訂單模塊要重新部署 意味著所有的服務器都需要重新部署一遍
冗余,有些模塊沒有必要部署在所有的服務器上
招人:100個人的團隊,對項目進行新的優化和升級—服務化(SOA),根據業務模塊的不同,拆分為不同的應用。
以上就是分布式的架構
于是公司進入轟轟烈烈的服務化時代,但是有幾個問題需要被解決,如下
每一個模塊都是一個獨立的項目 都可以獨立啟動 這樣的做法 就叫做服務化 模塊變成項目之后我們稱之為服務 首頁模塊---》首頁服務
這就是服務化 這就是微服務,微服務是:特殊的分布式架構【服務化】
首頁的訪問量比較大 就可以部署五個
訂單的訪問量小 就可以只部署一個
問題:
服務之間怎么調用?例如:訂單服務需要調用商品服務的數據,怎么調用?
怎么負載均衡?服務之間負載均衡?app訪問后臺怎么負載均衡?
服務怎么被管理?例如:商品服務宕機了,怎么即時的通知訂單服務?如果沒有通知訂單服務,訂單服務發的請求都會阻塞,造成訂單宕機,引發鏈式故障,整個項目崩潰
服務之間的異常處理?
......
以上每一個問題都需要一個新的技術解決,而引入的新技術就是微服務技術,SpringCloud(一套技術)
如何解決這幾個問題 又需要用到一些新的技術,這些技術就是所謂的微服務的技術(SpringCloud)
基于上面的問題,整個并夕夕商城團隊瘋狂的努力,找到了一些技術(SpringCloud),分別解決了上述問題,架構圖如下:
到此為止,并夕夕商城成為了一個微服務的架構。
服務化 微服務主要的內容就是按照業務模塊拆分不同的應用服務,并且解決拆分之后遇到的問題
每個服務可獨立運行在自己的進程里 每個服務獨立部署啟動
一系列獨立運行的微服務共同構建起整個系統
每個服務為獨立的業務開發,一個微服務只關注某個特定的功能,例如訂單管理,用戶管理【按照服務拆分】
微服務之間通過一些輕量的通信機制進行通信,例如Restful API(HTTP)進行調用【訂單服務如何調用商品服務】
可以使用不同的編程語言與數據存儲技術開發
官網鏈接:https://www.martinfowler.com/articles/microservices.html
SpringCloud=分布式微服務架構下的一站式解決方案,是各個微服務架構落地技術的集合體,俗稱微服務全家桶。Spring Cloud是一個含概多個子項目的開發工具集,集合了眾多的開源框架,他利用了Spring Boot開發的便利性實現了很多功能,如服務注冊,服務發現,負載均衡等。
服務管理 需要一個技術
服務調用 需要一個技術
負載均衡 需要一個技術
.......
這些技術怎么來?
自己找,技術之間的整合沒有一定的技術實力搞不定
SpringCloud,SpringCloud官方找了一套解決微服務問題的技術,做了封裝和整合,讓用戶可以直接使用,不需要關心技術整合的問題
開發微服務相當于買一臺電腦
自己組裝,自己找微服務的技術相當于自己組裝電腦
買品牌機,使用SpringCloud相當于直接買了一個聯想的電腦,CPU 顯卡等等都幫你處理好了
SpringBoot 和 SpringCloud有什么關系
使用負載均衡需要很多的配置,寫配置
自己寫配置
SpringBoot自動配置
SpringCloud 使用了 SpringBoot 作為底層,通過SpringBoot的自動配置簡化分布式的開發
關于“微服務基本概念是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“微服務基本概念是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。