微服務是什么?
微服務的定義?
維基上對其定義為:一種軟件開發(fā)技術- 面向服務的體系結(jié)構(gòu)(SOA)架構(gòu)樣式的一種變體,它提倡 將單一應用程序劃分成一組小的服務 ,服務之間互相協(xié)調(diào)、互相配合,為用戶提供最終價值。每個服務運行在其獨立的進程中 ,服務與 服務間采用輕量級的通信機制 互相溝通(通常是基于HTTP的RESTful API,或者RPC)。每個服務都圍繞著具體業(yè)務進行構(gòu)建,并且能夠獨立部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等。另外,應盡量避免統(tǒng)一的、集中式的服務管理機制,對具體的一個服務而言,應根據(jù)上下文,選擇合適的語言、工具對其進行構(gòu)建。
單體架構(gòu)
早期的軟件,所有功能都寫在一起,這稱為單體架構(gòu)(monolithic software)。
舉個栗子:
早期電商系統(tǒng)的購物車、訂單、支付、評價等都在一個單體項目中
(1)所有功能耦合在一起,互相影響,最終難以管理。
(2)哪怕只修改一行代碼,整個軟件就要重新構(gòu)建和部署,成本非常高。
(3)因為軟件做成了一個整體,不可能每個功能單獨開發(fā)和測試,只能整體開發(fā)和測試,導致必須采用瀑布式開發(fā)模型。
微服務架構(gòu)
簡單來說,微服務就是把大一統(tǒng)的單體軟件拆分成很多小的服務.
(1)每種服務功能單一,相當于一個小型軟件,便于開發(fā)和測試。
(2)各個服務獨立運行,簡化了架構(gòu),提高了可靠性。
(3)鼓勵和支持代碼重用,同一個服務可以用于多種目的。
(4)不同服務可以單獨開發(fā)和部署,便于升級。
(5)擴展性好,可以容易地加機器、加功能,承受高負載。
(6)不容易出現(xiàn)單點故障。即使一個服務失敗了,不會影響到其他服務。

浙公網(wǎng)安備 33010602011771號