溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微服務基本概念是什么

發(fā)布時間:2022-01-12 09:07:07 來源:億速云 閱讀:156 作者:iii 欄目:云計算

這篇文章主要介紹了微服務基本概念是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇微服務基本概念是什么文章都會有所收獲,下面我們一起來看看吧。

微服務基本概念

架構的演變

為什么會有微服務?

假如回到10年前,一天張三入職了電商企業(yè)—并夕夕商城。

公司初創(chuàng),人比較少,公司網(wǎng)站的用戶也很少,公司只有一個工程師

項目架構比較簡單

1.單體架構

微服務基本概念是什么

沒有想到的是,公司業(yè)務越來越好,網(wǎng)站用戶量越來越大,單體架構的問題就暴露出來了,隨著訪問量增加,項目經(jīng)常宕機

問題:架構簡單 難以抗住高并發(fā)

于是,招人。對并夕夕商城進行升級優(yōu)化。

分析升級的方向:

  1. 數(shù)據(jù)庫 和 應用代碼要放在不同的服務器

  2. 增加應用負載能力【集群】

于是增加負載均衡。

2.負載均衡

分布式:一個系統(tǒng) 通過多臺服務器 協(xié)同完成系統(tǒng)功能

集群:同一個系統(tǒng)放在了多臺服務器上 且每個服務器上內容相同 復制了多份

微服務基本概念是什么

負載均衡的問題

  1. 成本

  2. Session

增加負載均衡之后,應用服務器不再是系統(tǒng)的瓶頸了,可以靈活的隨著訪問量增大的同時增加應用服務器集群的數(shù)量。

隨著業(yè)務量不斷增加,數(shù)據(jù)量也在不斷增加,數(shù)據(jù)庫出現(xiàn)性能瓶頸。

招人

在多位同事努力之下,對項目進行進一步的優(yōu)化—讀寫分離。

3.讀寫分離

微服務基本概念是什么

上述的架構看上去非常的完美,但是,隨著并夕夕商城業(yè)務量的不斷增加,新的問題暴露了出來。

問題:

  1. 商品搜索使用數(shù)據(jù)庫模糊查詢不行,不精確,慢 【全文檢索】

    圖書查詢 模糊匹配

  2. 不同模塊的數(shù)據(jù)訪問的頻率是不一樣的(熱度不同),首頁數(shù)據(jù)訪問量比較大,訂單數(shù)據(jù)的訪問量相比之下要小很多。所有的數(shù)據(jù)都去數(shù)據(jù)庫取,影響首頁訪問速度 【緩存】

招人

4.全文檢索緩存

所有的同事開始一起優(yōu)化項目,商品搜索使用全文檢索技術ES完成,并且引入緩存(Redis集群),于是架構變成了這個亞子。

微服務基本概念是什么

隨著并夕夕商城不斷壯大,公司迎來了風投,風投兩個億,于是商城發(fā)展的更快了,新的問題出現(xiàn)了。

問題:

  • 不同業(yè)務模塊之間的耦合太高,一個模塊出問題整個服務器宕機

  • 維護困難,假如應用服務器集群200臺,那么項目上線意味著需要部署200臺服務器

    譬如:修改了訂單的代碼 訂單模塊要重新部署 意味著所有的服務器都需要重新部署一遍

  • 冗余,有些模塊沒有必要部署在所有的服務器上

招人:100個人的團隊,對項目進行新的優(yōu)化和升級—服務化(SOA),根據(jù)業(yè)務模塊的不同,拆分為不同的應用。

以上就是分布式的架構

5.服務化

于是公司進入轟轟烈烈的服務化時代,但是有幾個問題需要被解決,如下

微服務基本概念是什么

每一個模塊都是一個獨立的項目 都可以獨立啟動 這樣的做法 就叫做服務化 模塊變成項目之后我們稱之為服務 首頁模塊---》首頁服務

這就是服務化 這就是微服務,微服務是:特殊的分布式架構【服務化】

  • 首頁的訪問量比較大 就可以部署五個

  • 訂單的訪問量小 就可以只部署一個

微服務基本概念是什么

問題:

  1. 服務之間怎么調用?例如:訂單服務需要調用商品服務的數(shù)據(jù),怎么調用?

  2. 怎么負載均衡?服務之間負載均衡?app訪問后臺怎么負載均衡?

  3. 服務怎么被管理?例如:商品服務宕機了,怎么即時的通知訂單服務?如果沒有通知訂單服務,訂單服務發(fā)的請求都會阻塞,造成訂單宕機,引發(fā)鏈式故障,整個項目崩潰

  4. 服務之間的異常處理?

    ......

以上每一個問題都需要一個新的技術解決,而引入的新技術就是微服務技術,SpringCloud(一套技術)

如何解決這幾個問題 又需要用到一些新的技術,這些技術就是所謂的微服務的技術(SpringCloud)

基于上面的問題,整個并夕夕商城團隊瘋狂的努力,找到了一些技術(SpringCloud),分別解決了上述問題,架構圖如下:

微服務基本概念是什么

到此為止,并夕夕商城成為了一個微服務的架構。

服務化 微服務主要的內容就是按照業(yè)務模塊拆分不同的應用服務,并且解決拆分之后遇到的問題

什么是微服務

  • 每個服務可獨立運行在自己的進程里 每個服務獨立部署啟動

  • 一系列獨立運行的微服務共同構建起整個系統(tǒng)

  • 每個服務為獨立的業(yè)務開發(fā),一個微服務只關注某個特定的功能,例如訂單管理,用戶管理【按照服務拆分】

  • 微服務之間通過一些輕量的通信機制進行通信,例如Restful API(HTTP)進行調用【訂單服務如何調用商品服務】

  • 可以使用不同的編程語言與數(shù)據(jù)存儲技術開發(fā)

官網(wǎng)鏈接:https://www.martinfowler.com/articles/microservices.html

什么是SpringCloud

SpringCloud=分布式微服務架構下的一站式解決方案,是各個微服務架構落地技術的集合體,俗稱微服務全家桶。Spring Cloud是一個含概多個子項目的開發(fā)工具集,集合了眾多的開源框架,他利用了Spring Boot開發(fā)的便利性實現(xiàn)了很多功能,如服務注冊,服務發(fā)現(xiàn),負載均衡等。

  • 服務管理 需要一個技術

  • 服務調用 需要一個技術

  • 負載均衡 需要一個技術

    .......

這些技術怎么來?

  1. 自己找,技術之間的整合沒有一定的技術實力搞不定

  2. SpringCloud,SpringCloud官方找了一套解決微服務問題的技術,做了封裝和整合,讓用戶可以直接使用,不需要關心技術整合的問題

開發(fā)微服務相當于買一臺電腦

  1. 自己組裝,自己找微服務的技術相當于自己組裝電腦

  2. 買品牌機,使用SpringCloud相當于直接買了一個聯(lián)想的電腦,CPU 顯卡等等都幫你處理好了

SpringBoot 和 SpringCloud有什么關系

使用負載均衡需要很多的配置,寫配置

  • 自己寫配置

  • SpringBoot自動配置

SpringCloud 使用了 SpringBoot 作為底層,通過SpringBoot的自動配置簡化分布式的開發(fā)

關于“微服務基本概念是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“微服務基本概念是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI