https://baijiahao.baidu.com/s?id=1619729173689752981&wfr=spider&for=pc
Dubbo 沉睡舱污,Spring Cloud 崛起呀舔!
CSDN
18-12-1317:43
作者 | 倪升武
責編 | 胡巍巍
通常而言,微服務架構是一種架構模式或者說一種架構風格扩灯,它提倡將單一應用程序劃分成一組小的服務媚赖,每個服務運行在其獨立的進程中,服務之間互相協(xié)調(diào)珠插、互相配合惧磺,為用戶提供最終的價值。
服務之間采用輕量級的通信機制(通常是基于HTTP的RESTful API)捻撑。每個服務都圍繞著具體業(yè)務進行構建磨隘,并且能夠被獨立地部署到生產(chǎn)環(huán)境缤底、類生產(chǎn)環(huán)境等。
另外番捂,應盡量避免統(tǒng)一的个唧、集中式的服務管理機制,對具體的一個服務而言设预,應根據(jù)業(yè)務上下文徙歼,選擇合適的語言、工具對其進行構建鳖枕,可以有一個非常輕量級的集中式管理來協(xié)調(diào)這些服務鲁沥,可以使用不同的語言來開發(fā)這些服務,也可以使用不同的數(shù)據(jù)存儲耕魄。
微服務是什么画恰?
微服務化的核心就是將傳統(tǒng)的一站式應用,根據(jù)業(yè)務拆分成一個一個的服務吸奴,徹底去掉耦合允扇,每一個微服務提供單個業(yè)務功能,一個服務只做一件事则奥。
從技術角度講就是一種小而獨立的處理過程考润,類似與進程的概念,能夠自行單獨啟動或銷毀读处,可以擁有自己獨立的數(shù)據(jù)庫糊治。從理論角度,這里有篇微服務架構的提出者馬丁福特的論文:
https://martinfowler.com/articles/microservices.html罚舱,也可以直接谷歌搜索井辜。
論文中提到了微服務和傳統(tǒng)架構的區(qū)別,傳統(tǒng)架構(單機系統(tǒng))管闷,一個項目一個工程:比如商品粥脚、訂單、交易包个、庫存等等刷允,統(tǒng)一部署,一個進程碧囊。如下圖所示(圖片出自于原文):
微服務架構(分布式系統(tǒng))树灶,各個模塊/服務,各自獨立出來糯而,“讓專業(yè)的人干專業(yè)的事”天通,獨立部署。分布式系統(tǒng)中歧蒋,不同的服務可以使用各自獨立的數(shù)據(jù)庫土砂。如下圖所示(圖片出自于原文):
微服務的優(yōu)缺點
微服務優(yōu)點:
1.每個服務足夠內(nèi)聚,足夠小谜洽,代碼容易理解萝映。這樣能聚焦一個只當?shù)臉I(yè)務功能或業(yè)務需求。
2.開發(fā)簡單阐虚、開發(fā)效率提高序臂,一個服務可能就是專業(yè)的只干一件事,微服務能夠被小團隊單獨開發(fā)实束,這個小團隊可以是2到5人的開發(fā)人員組成奥秆。
3.微服務是松耦合的,是有功能意義的服務咸灿,無論是在開發(fā)階段或部署階段都是獨立的构订。
4.微服務能使用不同的語言開發(fā)。
5.易于和第三方集成避矢,微服務運行容易且靈活的方式集成自動部署悼瘾,通過持續(xù)集成工具,如Jenkins审胸、Hudson亥宿、Bamboo。
6.微服務易于被一個開發(fā)人員理解砂沛、修改和維護烫扼,這樣小團隊能夠更關注自己的工作成果,無需通過合作才能體現(xiàn)價值碍庵。
7.微服務允許你利用融合最新技術映企。微服務只是業(yè)務邏輯的代碼,不會和HTML/CSS或其他界面組件混合静浴,即前后端分離卑吭。
8.每個微服務都有自己的存儲能力,可以有自己的數(shù)據(jù)庫马绝,也可以有統(tǒng)一數(shù)據(jù)庫豆赏。
微服務的缺點:開發(fā)人員要處理分布式系統(tǒng)的復雜性。
微服務的技術棧有哪些富稻?
微服務中掷邦,首先肯定離不開服務開發(fā)、服務配置與管理椭赋、服務注冊與發(fā)現(xiàn)抚岗、服務的調(diào)用、熔斷器以及負載均衡等等哪怔,除此之外宣蔚,還有服務的路由向抢、監(jiān)控、部署胚委,還有可能涉及到一些中間件等等挟鸠。
這些技術棧都有一些對應的落地技術實現(xiàn),具體可以看一下下面這張圖(圖片可點開放大):
為什么選擇SpringCloud亩冬?
當前微服務架構艘希,Dubbo和SpringCloud比較火,另外還有Thrift硅急、gRPC等等覆享,下面把這些做一個比較,即可看出SpringCloud的強大之處营袜。由于圖片比較長撒顿,我分了兩張圖。
在微服務架構的實施和落地過程中荚板,通常我們會進行技術選型核蘸,很多人會拿阿里開源的Dubbo和Spring Cloud進行對比,實際上對比的是REST和RPC啸驯,其實Dubbo和Spring Cloud并不在同一領域客扎,沒有可比性。
Spring Cloud是一個完整的微服務解決方案罚斗,正如上面的表格中展現(xiàn)的徙鱼,它提供分布式情況下的各種解決方案合集。而Dubbo是一款高性能的Java RPC框架针姿。Spring Cloud生態(tài)和Dubbo生態(tài)隨著技術的發(fā)展袱吆,會逐漸的融合互補。
Dubbo沉睡了5年距淫,Spring Cloud像獵豹一樣追上來了绞绒,可以看出,Spring Cloud現(xiàn)在非抽畔荆火爆蓬衡,也是Spring官方大力推薦的技術,很有競爭力彤枢,以后的分布式架構使用Spring Cloud也很廣泛狰晚,后面我會寫一些使用Spring Cloud的相關技術文章。
作者簡介:倪升武缴啡,CSDN 博客專家壁晒,CSDN達人課作者。碩士畢業(yè)于同濟大學业栅,曾先后就職于 eBay秒咐、愛奇藝谬晕、華為。目前在科大訊飛從事Java領域的軟件開發(fā)携取,他的世界不僅只有coding攒钳。聲明:本文為作者投稿,版權歸其個人所有歹茶。