微服务随想
微服務(wù)隨想
Intro
在如今微服務(wù)的思想和架構(gòu)流行的今天,以及結(jié)合最近在公司實施的微服務(wù)化,想談?wù)勛约簩ξ⒎?wù)的理解及看法,可能并不太對,如果你覺得哪些有問題,歡迎指出,一起探討學(xué)習(xí)。
下面我將從微服務(wù)的三個層面去探討
什么是微服務(wù)
在介紹微服務(wù)時,首先得先理解什么是微服務(wù),顧名思義,微服務(wù)得從兩個方面去理解,什么是"微"、什么是"服務(wù)", 微 狹義來講就是體積小、著名的"2 pizza 團隊"很好的詮釋了這一解釋(2 pizza 團隊最早是亞馬遜 CEO Bezos提出來的,意思是說單個服務(wù)的設(shè)計,所有參與人從設(shè)計、開發(fā)、測試、運維所有人加起來 只需要2個披薩就夠了 )。 而所謂服務(wù),一定要區(qū)別于系統(tǒng),服務(wù)一個或者一組相對較小且獨立的功能單元,是用戶可以感知最小功能集。
微服務(wù)是一種架構(gòu)風(fēng)格,一個大型復(fù)雜軟件應(yīng)用由一個或多個微服務(wù)組成。系統(tǒng)中的各個微服務(wù)可被獨立部署,各個微服務(wù)之間是松耦合的。每個微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。在所有情況下,每個任務(wù)代表著一個小的業(yè)務(wù)能力。
微服務(wù)架構(gòu)風(fēng)格是一種使用一套小服務(wù)來開發(fā)單個應(yīng)用的方式途徑,每個服務(wù)運行在自己的進(jìn)程中,并使用輕量級機制通信,通常是 HTTP REST API,這些服務(wù)基于業(yè)務(wù)能力構(gòu)建,并能夠通過自動化部署機制來獨立部署,這些服務(wù)可以使用不同的編程語言實現(xiàn),以及不同數(shù)據(jù)存儲技術(shù),并保持最低限度的集中式管理。
為什么要微服務(wù)
從系統(tǒng)及應(yīng)用程序的角度來說,起初大部分應(yīng)用都是單體應(yīng)用,所有的代碼及功能都糅合在一起,隨著系統(tǒng)的逐漸變大變得復(fù)雜,單體應(yīng)用的部署和具體的功能模塊依賴程,比較嚴(yán)重,相互影響較大,所以到后面通常會引入服務(wù)化的概念,將不同的模塊拆成不同的服務(wù)來進(jìn)行解耦和降低依賴,提高部署的靈活性。首先被應(yīng)用的也就是 SOA(Service Oriented Architecture) 架構(gòu)模式,SOA 架構(gòu)模式下多有 ESB(Enterprise Service Bus) ,而 ESB 通常與某種語言/某種技術(shù)棧是強綁定的,也就決定了 SOA 模式下的開發(fā)語言/技術(shù)框架選擇的限制。之后微服務(wù)開始出現(xiàn)在人們的視野之中,微服務(wù)的出現(xiàn)使得各個服務(wù)之間可以使用不同的技術(shù)棧,這對于使用不同語言的技術(shù)棧的開發(fā)人員來說是一個福音,從整體應(yīng)用的角度來看,不需要再關(guān)注是什么樣的語言與技術(shù)棧的實現(xiàn),另外對于大多數(shù)互聯(lián)網(wǎng)應(yīng)用來說,應(yīng)用程序的彈性擴展也很重要,微服務(wù)化同樣使得彈性擴展變得方便簡單。
單體應(yīng)用架構(gòu)的問題
SOA 存在的問題
微服務(wù)的優(yōu)缺點
優(yōu)點
- 各模塊耦合程度低
- 服務(wù)自治
- 按需伸縮比較簡單
- 技術(shù)棧選擇不受限,各個服務(wù)相互獨立
- 發(fā)布部署簡單,啟動速度快
缺點
- 運維成本比較高
- 分布式環(huán)境復(fù)雜
怎么實施微服務(wù)
Reference
- https://blog.csdn.net/tiandiwuya/article/details/78543336
- https://blog.csdn.net/wuxiaobingandbob/article/details/78642020?locationNum=1&fps=1
- https://blog.csdn.net/chszs/article/details/78515231
- https://blog.csdn.net/oschina_41740100/article/details/80630901
Contact
后續(xù)會展開介紹如果進(jìn)行具體的實施
Contact me: weihanli@outlook.com
總結(jié)
- 上一篇: 利用Jmeter测试CSRF令牌验证的W
- 下一篇: Dubbo管理控制台的安装