湖南Consul微服務(wù)架構(gòu)設(shè)置

來(lái)源: 發(fā)布時(shí)間:2022-09-01

    目錄一、微服務(wù)架構(gòu)實(shí)施的前提二、微服務(wù)實(shí)施的三大模式三、實(shí)施微服務(wù)架構(gòu)的優(yōu)勢(shì)(一)、六大技術(shù)優(yōu)勢(shì)(二)、業(yè)務(wù)與組織優(yōu)勢(shì)四、實(shí)施微服務(wù)面臨的挑戰(zhàn)(一)、技術(shù)架構(gòu)的挑戰(zhàn)(二)、研發(fā)過(guò)程的挑戰(zhàn)參考書(shū)籍、文獻(xiàn)和資料:一、微服務(wù)架構(gòu)實(shí)施的前提如圖,MartinFowler結(jié)石的生產(chǎn)率和復(fù)復(fù)雜度的關(guān)系。可以看出:1.當(dāng)復(fù)雜度較小時(shí),采用單塊系統(tǒng)的生產(chǎn)率更高,微服務(wù)架構(gòu)反而可能降低生產(chǎn)率。2.當(dāng)復(fù)雜度達(dá)到一定規(guī)模時(shí),無(wú)論單塊系統(tǒng)還是微服務(wù)架構(gòu)都會(huì)降低生產(chǎn)率,但是單塊系統(tǒng)會(huì)面臨急劇下降的情況,而微服務(wù)架構(gòu)相對(duì)平穩(wěn)。3.我們發(fā)現(xiàn)有一個(gè)明顯的拐點(diǎn)存在,但是并沒(méi)有量化這個(gè)拐點(diǎn)的具體大小,也就是說(shuō)系統(tǒng)或代碼的規(guī)模達(dá)到具體多大適合進(jìn)行微服務(wù)的拆分,這個(gè)需要各個(gè)團(tuán)隊(duì)因地制宜。4.只有當(dāng)出現(xiàn)這個(gè)拐點(diǎn)時(shí)對(duì)系統(tǒng)進(jìn)行微服務(wù)化的拆分才是合適的方案,服務(wù)的合理拆分是實(shí)施微服務(wù)架構(gòu)的一大前提。5.微服務(wù)的實(shí)施需要基礎(chǔ)設(shè)施自動(dòng)化,這和服務(wù)規(guī)模有關(guān),從開(kāi)發(fā)之后的構(gòu)建、測(cè)試、部署都需要高度自動(dòng)化的環(huán)境來(lái)支撐才能有效降低邊際成本。二、微服務(wù)實(shí)施的三大模式1.典型模式:從一個(gè)單塊系統(tǒng)開(kāi)始逐步轉(zhuǎn)變到多個(gè)維度的微服務(wù)架構(gòu)。2.從無(wú)到有的實(shí)施。把一個(gè)復(fù)雜領(lǐng)域劃分成多個(gè)界限上下文,再將其間關(guān)聯(lián)勾畫(huà)出來(lái),就是概念模型層面的去中心化。湖南Consul微服務(wù)架構(gòu)設(shè)置

    微服務(wù)軟件架構(gòu)是一個(gè)包含各種組織的系統(tǒng)組織,這些組件包括Web服務(wù)器,應(yīng)用服務(wù)器,數(shù)據(jù)庫(kù),存儲(chǔ),通訊層),它們彼此或和環(huán)境存在關(guān)系。系統(tǒng)架構(gòu)的目標(biāo)是解決利益相關(guān)者的關(guān)注點(diǎn)。Conway’slaw:Organizationswhichdesignsystems[...]areconstrainedtoproducedesignswhicharecopiesofthecommunicationstructuresoftheseorganizations.(設(shè)計(jì)系統(tǒng)的組織,其產(chǎn)生的設(shè)計(jì)和架構(gòu)等價(jià)于組織間的溝通結(jié)構(gòu)。)Monolithic架構(gòu)Monolithic比較適合小項(xiàng)目,優(yōu)點(diǎn)是:開(kāi)發(fā)簡(jiǎn)單直接,集中式管理,基本不會(huì)重復(fù)開(kāi)發(fā)功能都在本地,沒(méi)有分布式的管理開(kāi)銷(xiāo)和調(diào)用開(kāi)銷(xiāo)。它的缺點(diǎn)也非常明顯,特別對(duì)于互聯(lián)網(wǎng)公司來(lái)說(shuō)(不一一列舉了):開(kāi)發(fā)效率低:所有的開(kāi)發(fā)在一個(gè)項(xiàng)目改代碼,遞交代碼相互等待,代碼不斷代碼維護(hù)難:代碼功能耦合在一起,新人不知道何從下手部署不靈活:構(gòu)建時(shí)間長(zhǎng),任何小修改必須重新構(gòu)建整個(gè)項(xiàng)目,這個(gè)過(guò)程往往很長(zhǎng)穩(wěn)定性不高:一個(gè)微不足道的小問(wèn)題,可以導(dǎo)致整個(gè)應(yīng)用掛掉擴(kuò)展性不夠:無(wú)法滿足高并發(fā)情況下的業(yè)務(wù)需求微服務(wù)架構(gòu)微服務(wù)是指開(kāi)發(fā)一個(gè)單個(gè)小型的但有業(yè)務(wù)功能的服務(wù),每個(gè)服務(wù)都有自己的處理和輕量通訊機(jī)制,可以部署在單個(gè)或多個(gè)服務(wù)器上。湖南Consul微服務(wù)架構(gòu)設(shè)置微服務(wù)是利用組織的服務(wù)投資組合,基于業(yè)務(wù)領(lǐng)域功能分解它們,在看到服務(wù)投資組合之前,它是一個(gè)業(yè)務(wù)領(lǐng)域。

    斷路器模式源于MartinFowler的CircuitBreaker一文。“斷路器”本身是一種開(kāi)關(guān)裝置,用于在電路上保護(hù)線路過(guò)載,當(dāng)線路中有電器發(fā)生短路時(shí),“斷路器”能夠及時(shí)的切斷故障電路,防止發(fā)生過(guò)載、發(fā)熱、甚至起火等嚴(yán)重后果。在分布式架構(gòu)中,斷路器模式的作用也是類(lèi)似的,當(dāng)某個(gè)服務(wù)單元發(fā)生故障(類(lèi)似用電器發(fā)生短路)之后,通過(guò)斷路器的故障監(jiān)控(類(lèi)似熔斷保險(xiǎn)絲),直接切斷原來(lái)的主邏輯調(diào)用。但是,在Hystrix中的斷路器除了切斷主邏輯的功能之外,還有更復(fù)雜的邏輯,下面我們來(lái)看看它更為深層次的處理邏輯。我們來(lái)說(shuō)說(shuō)斷路器的工作原理,當(dāng)我們把服務(wù)提供者eureka-client中加入了模擬的時(shí)間延遲之后,在服務(wù)消費(fèi)端的服務(wù)降級(jí)邏輯因?yàn)閔ystrix命令調(diào)用依賴服務(wù)超時(shí),觸發(fā)了降級(jí)邏輯,但是即使這樣,受限于Hystrix超時(shí)時(shí)間的問(wèn)題,我們的調(diào)用依然很有可能產(chǎn)生堆積。這個(gè)時(shí)候斷路器就會(huì)發(fā)揮作用,那么斷路器是在什么情況下開(kāi)始起作用呢?這里涉及到斷路器的三個(gè)重要參數(shù):快照時(shí)間窗、請(qǐng)求總數(shù)下限、錯(cuò)誤百分比下限。這個(gè)參數(shù)的作用分別是:快照時(shí)間窗:斷路器確定是否打開(kāi)需要統(tǒng)計(jì)一些請(qǐng)求和錯(cuò)誤數(shù)據(jù),而統(tǒng)計(jì)的時(shí)間范圍就是快照時(shí)間窗,默認(rèn)為近的10秒。

    請(qǐng)求總數(shù)下限:在快照時(shí)間窗內(nèi),必須滿足請(qǐng)求總數(shù)下限才有資格根據(jù)熔斷。默認(rèn)為20,意味著在10秒內(nèi),如果該hystrix命令的調(diào)用此時(shí)不足20次,即時(shí)所有的請(qǐng)求都超時(shí)或其他原因失敗,斷路器都不會(huì)打開(kāi)。錯(cuò)誤百分比下限:當(dāng)請(qǐng)求總數(shù)在快照時(shí)間窗內(nèi)超過(guò)了下限,比如發(fā)生了30次調(diào)用,如果在這30次調(diào)用中,有16次發(fā)生了超時(shí)異常,也就是超過(guò)50%的錯(cuò)誤百分比,在默認(rèn)設(shè)定50%下限情況下,這時(shí)候就會(huì)將斷路器打開(kāi)。那么當(dāng)斷路器打開(kāi)之后會(huì)發(fā)生什么呢?我們先來(lái)說(shuō)說(shuō)斷路器未打開(kāi)之前,對(duì)于之前那個(gè)示例的情況就是每個(gè)請(qǐng)求都會(huì)在當(dāng)hystrix超時(shí)之后返回fallback,每個(gè)請(qǐng)求時(shí)間延遲就是近似hystrix的超時(shí)時(shí)間,如果設(shè)置為5秒,那么每個(gè)請(qǐng)求就都要延遲5秒才會(huì)返回。當(dāng)熔斷器在10秒內(nèi)發(fā)現(xiàn)請(qǐng)求總數(shù)超過(guò)20,并且錯(cuò)誤百分比超過(guò)50%,這個(gè)時(shí)候熔斷器打開(kāi)。打開(kāi)之后,再有請(qǐng)求調(diào)用的時(shí)候,將不會(huì)調(diào)用主邏輯,而是直接調(diào)用降級(jí)邏輯,這個(gè)時(shí)候就不會(huì)等待5秒之后才返回fallback。通過(guò)斷路器,實(shí)現(xiàn)了自動(dòng)地發(fā)現(xiàn)錯(cuò)誤并將降級(jí)邏輯切換為主邏輯,減少響應(yīng)延遲的效果。在斷路器打開(kāi)之后,處理邏輯并沒(méi)有結(jié)束,我們的降級(jí)邏輯已經(jīng)被成了主邏輯,那么原來(lái)的主邏輯要如何恢復(fù)呢?對(duì)于這一問(wèn)題。另一方面,還可以通過(guò)服務(wù)邊界和服務(wù)協(xié)議方面的演進(jìn)來(lái)盡可能減少這樣的關(guān)聯(lián)。

    我們不需要維護(hù)或者同步一個(gè)的配置文件:因?yàn)橐磺卸紩?huì)自動(dòng)配置,實(shí)時(shí)操作的(無(wú)需重新啟動(dòng),不會(huì)中斷連接)。使用Traefik,我們可以花更多的時(shí)間在系統(tǒng)的開(kāi)發(fā)和新功能上面,而不是在配置和維護(hù)工作狀態(tài)上面花費(fèi)大量時(shí)間。其架構(gòu)圖如下所示:服務(wù)治理站在技術(shù)實(shí)現(xiàn)角度,服務(wù)治理通常被定義為改變運(yùn)行時(shí)服務(wù)的行為和選址邏輯,達(dá)到限流,權(quán)重配置等目的,主要涉及動(dòng)態(tài)配置、路由標(biāo)簽、負(fù)載均衡等等。1、SpringCloudHystrix/RibbonSpringCloud是目前主流的微服務(wù)架構(gòu)落地方案之一,是基于SpringBoot實(shí)現(xiàn)的開(kāi)源框架,是一個(gè)全家桶,是微服務(wù)的整體技術(shù)棧。它為服務(wù)注冊(cè)發(fā)現(xiàn)、動(dòng)態(tài)路由、負(fù)載均衡、配置管理、消息總線、熔斷器、分布式鏈路追蹤、大數(shù)據(jù)操作等提供了簡(jiǎn)單的實(shí)現(xiàn),讓我們可以更簡(jiǎn)潔地去調(diào)用。其生態(tài)體系架構(gòu)組件拓?fù)淙缦滤荆夯谏鲜鼋M件圖,開(kāi)箱即用的特性使得SpringCloud體系比較容易上手,需要哪個(gè)功能,直接通過(guò)Maven引入相應(yīng)子系統(tǒng)組件即可,可滿足不同層次的使用者,也可支持各類(lèi)不同應(yīng)用場(chǎng)景特點(diǎn)。微服務(wù)改造是一個(gè)漸變的過(guò)程,不必一開(kāi)始就使用所有功能。2、DubboDubbo是一個(gè)分布式服務(wù)框架,致力于提供高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案。在微服務(wù)架構(gòu)中,組件就是服務(wù),通過(guò) Web 服務(wù)請(qǐng)求或 RPC 之類(lèi)的機(jī)制通信。貴州路由微服務(wù)架構(gòu)搭建

企業(yè)通過(guò)進(jìn)行數(shù)字化改造的工程建立一條數(shù)字化的中臺(tái)系統(tǒng),這樣可以適應(yīng)企業(yè)的多元化發(fā)展。湖南Consul微服務(wù)架構(gòu)設(shè)置

    但是小系統(tǒng)沒(méi)有必要直接采用微服務(wù)架構(gòu)。3.混合式,微服務(wù)架構(gòu)很容易與現(xiàn)有系統(tǒng)并存,微服務(wù)與遺留系統(tǒng)的易整合性也是采用微服務(wù)的一個(gè)主要原因。三、實(shí)施微服務(wù)架構(gòu)的優(yōu)勢(shì)基本優(yōu)勢(shì)可如圖分析:實(shí)際例子舉例,如圖:(一)、六大技術(shù)優(yōu)勢(shì)1.組件化方案:高內(nèi)聚,低耦合;2.技術(shù)自由度:每個(gè)微服務(wù)高度,可以采用適合自身開(kāi)發(fā)團(tuán)隊(duì)和技術(shù)體系的工具和框架來(lái)實(shí)現(xiàn)某個(gè)微服務(wù);3.可擴(kuò)展性:?jiǎn)蝹€(gè)微服務(wù)在保證通信方式不變的情況下,對(duì)其內(nèi)部功能和技術(shù)的改變不會(huì)對(duì)外部依賴它的服務(wù)產(chǎn)生任何影響;4.可伸縮性:注意可以伸縮的前提是對(duì)系統(tǒng)有合理的劃分,高擴(kuò)展往往能夠帶來(lái)高可伸縮性;5.有效應(yīng)對(duì)遺留系統(tǒng):微服務(wù)時(shí)改造遺留系統(tǒng)的強(qiáng)有力武器,只要可以獲得遺留系統(tǒng)的暴露接口,微服務(wù)架構(gòu)就能與之進(jìn)行通信并完成功能整合。6.持續(xù)可交付:簡(jiǎn)單、可重復(fù)流程確保軟件發(fā)布過(guò)程的可靠性。(二)、業(yè)務(wù)與組織優(yōu)勢(shì)康威定律,組織形式等同于系統(tǒng)設(shè)計(jì),直白的說(shuō)就是,你想要什么樣的系統(tǒng)就搭建什么樣的團(tuán)隊(duì)。舉例:原有的功能團(tuán)隊(duì)-----------------微服務(wù)架構(gòu)的自治性組織文化。湖南Consul微服務(wù)架構(gòu)設(shè)置

首匯信息技術(shù)河北有限公司是一家有著雄厚實(shí)力背景、信譽(yù)可靠、勵(lì)精圖治、展望未來(lái)、有夢(mèng)想有目標(biāo),有組織有體系的公司,堅(jiān)持于帶領(lǐng)員工在未來(lái)的道路上大放光明,攜手共畫(huà)藍(lán)圖,在河北省等地區(qū)的商務(wù)服務(wù)行業(yè)中積累了大批忠誠(chéng)的客戶粉絲源,也收獲了良好的用戶口碑,為公司的發(fā)展奠定的良好的行業(yè)基礎(chǔ),也希望未來(lái)公司能成為*****,努力為行業(yè)領(lǐng)域的發(fā)展奉獻(xiàn)出自己的一份力量,我們相信精益求精的工作態(tài)度和不斷的完善創(chuàng)新理念以及自強(qiáng)不息,斗志昂揚(yáng)的的企業(yè)精神將**首匯信息供應(yīng)和您一起攜手步入輝煌,共創(chuàng)佳績(jī),一直以來(lái),公司貫徹執(zhí)行科學(xué)管理、創(chuàng)新發(fā)展、誠(chéng)實(shí)守信的方針,員工精誠(chéng)努力,協(xié)同奮取,以品質(zhì)、服務(wù)來(lái)贏得市場(chǎng),我們一直在路上!