微服務(wù)簡介
- 微服務(wù)架構(gòu)是一項(xiàng)在云中部署應(yīng)用和服務(wù)的新技術(shù)虐沥。大部分圍繞微服務(wù)的爭論都集中在容器或其他技術(shù)是否能很好的實(shí)施微服務(wù)熊经,而紅帽說API應(yīng)該是重點(diǎn)。
微服務(wù)可以在“自己的程序”中運(yùn)行欲险,并通過“輕量級(jí)設(shè)備與HTTP型API進(jìn)行溝通”镐依。關(guān)鍵在于該服務(wù)可以在自己的程序中運(yùn)行。通過這一點(diǎn)我們就可以將服務(wù)公開與微服務(wù)架構(gòu)(在現(xiàn)有系統(tǒng)中分布一個(gè)API)區(qū)分開來天试。在服務(wù)公開中槐壳,許多服務(wù)都可以被內(nèi)部獨(dú)立進(jìn)程所限制。如果其中任何一個(gè)服務(wù)需要增加某種功能喜每,那么就必須縮小進(jìn)程范圍务唐。在微服務(wù)架構(gòu)中,只需要在特定的某種服務(wù)中增加所需功能带兜,而不影響整體進(jìn)程枫笛。
垂直系統(tǒng)VS微服務(wù)
- 垂直系統(tǒng)弊端:
1、隨著業(yè)務(wù)量得增加刚照,復(fù)雜性逐漸變高刑巧、代碼解耦太深,不利于開發(fā)和維護(hù)
2无畔、技術(shù)債務(wù)逐漸積累加劇海诲,很多代碼都是為了解決問題而開發(fā)
3、阻礙新技術(shù)得引入和使用檩互,只能依賴于原有舊得技術(shù)框架開發(fā)
4特幔、無法進(jìn)行高可用、負(fù)載均衡闸昨、水平擴(kuò)展和合理得伸縮
5蚯斯、部署得服務(wù)速度會(huì)隨著代碼累積逐漸變慢、性能降低饵较、隨著數(shù)據(jù)量增大下降
微服務(wù)架構(gòu)
一個(gè)微服務(wù)需要有清晰得業(yè)務(wù)邊界拍嵌、高度得模塊化服務(wù)化解耦。每個(gè)模塊都完成自己得功能循诉,并且每個(gè)模塊都可以靈活得使用自己本身所需得技術(shù)横辆,他們之間相互獨(dú)立部署運(yùn)行,又可以相互進(jìn)行數(shù)據(jù)通信茄猫,可以使用Rest方式狈蚤,也可以使用RPC方式困肩,更可以使用消息中間件進(jìn)行消息總線處理。
微服務(wù)優(yōu)缺點(diǎn)
?優(yōu)點(diǎn):
擴(kuò)展性強(qiáng)脆侮、便于開發(fā)和維護(hù)锌畸,局部修改簡單。
啟動(dòng)較快靖避、性能潭枣、壓力測試更有針對性。調(diào)節(jié)CPU幻捏、內(nèi)存盆犁、磁盤IO性能等參數(shù)指標(biāo)方便。
技術(shù)棧不受限制篡九,可以使用任何技術(shù)框架谐岁、也可以選擇其他編程語言實(shí)現(xiàn)。
可伸縮性瓮下、可擴(kuò)展性翰铡、高可用性都可控钝域,可調(diào)節(jié)讽坏。
? 缺點(diǎn):
運(yùn)維要求比較高,需要分布式監(jiān)控例证、自動(dòng)化部署測試等路呜。
分布式得復(fù)雜性、邏輯復(fù)雜织咧、跟蹤復(fù)雜胀葱、以及分布式事物等問題。
接口調(diào)試笙蒙、模塊與模塊之間聯(lián)調(diào)測試比較復(fù)雜抵屿。
Spring Cloud 概述
Spring Cloud是一系列框架得有序集合("肯德基繽紛全家桶")。它利用SpringBoot得開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施得開發(fā)捅位。都可以用SpringBoot得開發(fā)風(fēng)格做到一鍵啟動(dòng)和部署轧葛。Spring并沒有重復(fù)造輪子,知識(shí)將目前各家公司開發(fā)得比較成熟艇搀、經(jīng)得起考研得服務(wù)框架組合起來尿扯,通過SpringBoot風(fēng)格進(jìn)行封裝屏蔽掉了復(fù)雜得配置和實(shí)現(xiàn)原理粱玲,最終給開發(fā)這流出一套簡單易懂懂算、容易部署和易維護(hù)得分布式系統(tǒng)開發(fā)工具包爪瓜。
Spring Cloud生態(tài)各類組件鉴扫,涵蓋了服務(wù)治理組件Eureka琼掠、客戶端負(fù)載均衡組件Ribbon、服務(wù)容錯(cuò)保護(hù)組件Hystix赊豌、聲明式服務(wù)調(diào)用組件Fegin等恐、API網(wǎng)關(guān)治理組件Zuul、分布式配置中心組件Config慢蜓、消息總線組件Bus亚再、消息驅(qū)動(dòng)組件Stream、分布式服務(wù)跟蹤組件Sleuth晨抡。
大概了解Spring Cloud后氛悬,接下來開始服務(wù)治理組件Eureka代碼講解。