乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Spring Cloud 微服務(wù)總體架構(gòu)圖

       Coder編程 2022-11-19 發(fā)布于北京


       

       

      斷路器(Hystrix):

      在微服務(wù)架構(gòu)中,根據(jù)業(yè)務(wù)來(lái)拆分成一個(gè)個(gè)的服務(wù),服務(wù)與服務(wù)之間可以相互調(diào)用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign來(lái)調(diào)用。為了保證其高可用,單個(gè)服務(wù)通常會(huì)集群部署。由于網(wǎng)絡(luò)原因或者自身的原因,服務(wù)并不能保證100%可用,如果單個(gè)服務(wù)出現(xiàn)問(wèn)題,調(diào)用這個(gè)服務(wù)就會(huì)出現(xiàn)線程阻塞,此時(shí)若有大量的請(qǐng)求涌入,Servlet容器的線程資源會(huì)被消耗完畢,導(dǎo)致服務(wù)癱瘓。服務(wù)與服務(wù)之間的依賴性,故障會(huì)傳播,會(huì)對(duì)整個(gè)微服務(wù)系統(tǒng)造成災(zāi)難性的嚴(yán)重后果,這就是服務(wù)故障的“雪崩”效應(yīng)。Netflix開(kāi)源了Hystrix組件,實(shí)現(xiàn)了斷路器模式,SpringCloud對(duì)這一組件進(jìn)行了整合。

       

      Feign :

      Feign是對(duì)接口做文章,在接口上添加注解,消費(fèi)者通過(guò)調(diào)用接口的形式進(jìn)行服務(wù)消費(fèi)。

      在Spring體系中,只要是通過(guò)調(diào)用接口來(lái)進(jìn)行某個(gè)操作的,應(yīng)該都是使用了動(dòng)態(tài)代理技術(shù),比如MyBatis中通過(guò)接口對(duì)應(yīng)到對(duì)應(yīng)的XML中的SQL。

      在Spring解析的時(shí)候,核心有2個(gè)步驟:

      通過(guò)接口來(lái)動(dòng)態(tài)注冊(cè)Bean

      對(duì)接口方法進(jìn)行動(dòng)態(tài)代理,比如Feign就是解析@GetMapping 這類注解將其轉(zhuǎn)為對(duì)應(yīng)的Http Get請(qǐng)求。

       

      Eureka服務(wù)治理:

      Eureka是Netflix開(kāi)發(fā)的服務(wù)發(fā)現(xiàn)框架,是一個(gè)基于REST(一種軟件架構(gòu)風(fēng)格,一種針對(duì)網(wǎng)絡(luò)應(yīng)用的設(shè)計(jì)和開(kāi)發(fā)方式,可以降低開(kāi)發(fā)的復(fù)雜性,提高系統(tǒng)的可伸縮性)的服務(wù)。主要以AWS云服務(wù)為支撐,提供服務(wù)發(fā)現(xiàn)并實(shí)現(xiàn)負(fù)載均衡和故障轉(zhuǎn)移。SpringCloud將它集成在其子項(xiàng)目spring-cloud-netflix中,以實(shí)現(xiàn)SpringCloud的服務(wù)發(fā)現(xiàn)功能。

      管理各種服務(wù)功能包括服務(wù)的注冊(cè)、發(fā)現(xiàn)、熔斷、負(fù)載、降級(jí)等,比如dubbo admin后臺(tái)的各種功能。有了服務(wù)中心后,任何一個(gè)服務(wù)都不能直接去相互調(diào)用,必須通過(guò)注冊(cè)中心來(lái)調(diào)用。

      服務(wù)端提供服務(wù)注冊(cè),當(dāng)客戶端服務(wù)啟動(dòng)的時(shí)候,會(huì)主動(dòng)向服務(wù)端進(jìn)行注冊(cè),服務(wù)端會(huì)存儲(chǔ)所有已經(jīng)注冊(cè)服務(wù)節(jié)點(diǎn)信息。服務(wù)端會(huì)管理這些節(jié)點(diǎn)信息,并且會(huì)將異常的節(jié)點(diǎn)移除服務(wù)列表。

      客戶端會(huì)每隔30秒發(fā)送心跳給服務(wù)端,告訴服務(wù)端自己時(shí)可用的。如果一個(gè)服務(wù)長(zhǎng)時(shí)間沒(méi)有發(fā)送心跳,大約90秒內(nèi)會(huì)被移除服務(wù)器列表。另外客戶端有緩存功能,所以即便Eureka集群中所有節(jié)點(diǎn)都失效,或者發(fā)生網(wǎng)絡(luò)分割故障導(dǎo)致客戶端不能訪問(wèn)任何一臺(tái)Eureka服務(wù)器;Eureka服務(wù)的消費(fèi)者仍然可以通過(guò)Eureka客戶端緩存來(lái)獲取現(xiàn)有的服務(wù)注冊(cè)信息。

      無(wú)論是服務(wù)端還時(shí)客戶端,都支持集群模式,注冊(cè)信息和更新信息會(huì)在整個(gè)eureka集群的節(jié)點(diǎn)進(jìn)行復(fù)制

       

      config配置管理:

      引入spring cloud config后,我們的外部配置文件就可以集中放置在一個(gè)git倉(cāng)庫(kù)里,再新建一個(gè)config server,用來(lái)管理所有的配置文件,維護(hù)的時(shí)候需要更改配置時(shí),只需要在本地更改后,推送到遠(yuǎn)程倉(cāng)庫(kù),所有的服務(wù)實(shí)例都可以通過(guò)config server來(lái)獲取配置文件,這時(shí)每個(gè)服務(wù)實(shí)例就相當(dāng)于配置服務(wù)的客戶端config client,為了保證系統(tǒng)的穩(wěn)定,配置服務(wù)端config server可以進(jìn)行集群部署。

       

       

      Ribbon:

      .負(fù)載均衡算法

      .app_name轉(zhuǎn)具體的ip:port

      .Ribbon從本質(zhì)上是利用了RestTemplate的Interceptor進(jìn)行了擴(kuò)展。

      .SpringCloud中,consumer在發(fā)起真正請(qǐng)求之前,解析URL中的provider_app_name,這個(gè)是通過(guò)Eureka的DiscoverClient實(shí)現(xiàn)中獲取到對(duì)應(yīng)的多個(gè)ip和端口組合,然后通過(guò)某種負(fù)載均衡算法進(jìn)行選擇,然后通過(guò)RestTemplate的Interceptor來(lái)處理這個(gè)映射。

       

      Zuul服務(wù)網(wǎng)關(guān):
      zuul的核心是一系列的filters, 其作用可以類比Servlet框架Filter
      Zuul的主要功能是路由和過(guò)濾器。是各種服務(wù)的統(tǒng)一入口,同時(shí)還會(huì)用來(lái)提供監(jiān)控、授權(quán)、安全、調(diào)度等等;可以通過(guò)擴(kuò)展ZuulFilter,在執(zhí)行方法之前,做各種檢查工作。
       
      什么是微服務(wù)(Microservice)

       

      微服務(wù)英文名稱Microservice,Microservice架構(gòu)模式就是將整個(gè)Web應(yīng)用組織為一系列小的Web服務(wù)。這些小的Web服務(wù)可以獨(dú)立地編譯及部署,并通過(guò)各自暴露的API接口相互通訊。它們彼此相互協(xié)作,作為一個(gè)整體為用戶提供功能,卻可以獨(dú)立地進(jìn)行擴(kuò)。

       

      微服務(wù)架構(gòu)需要的功能或使用場(chǎng)景:

       

      1:我們把整個(gè)系統(tǒng)根據(jù)業(yè)務(wù)拆分成幾個(gè)子系統(tǒng)。

      2:每個(gè)子系統(tǒng)可以部署多個(gè)應(yīng)用,多個(gè)應(yīng)用之間使用負(fù)載均衡。

      3:需要一個(gè)服務(wù)注冊(cè)中心,所有的服務(wù)都在注冊(cè)中心注冊(cè),負(fù)載均衡也是通過(guò)在注冊(cè)中心注冊(cè)的服務(wù)來(lái)使用一定策略來(lái)實(shí)現(xiàn)。

      4:所有的客戶端都通過(guò)同一個(gè)網(wǎng)關(guān)地址訪問(wèn)后臺(tái)的服務(wù),通過(guò)路由配置,網(wǎng)關(guān)來(lái)判斷一個(gè)URL請(qǐng)求由哪個(gè)服務(wù)處理。請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)上的時(shí)候也使用負(fù)載均衡。

      5:服務(wù)之間有時(shí)候也需要相互訪問(wèn)。例如有一個(gè)用戶模塊,其他服務(wù)在處理一些業(yè)務(wù)的時(shí)候,要獲取用戶服務(wù)的用戶數(shù)據(jù)。

      6:需要一個(gè)斷路器,及時(shí)處理服務(wù)調(diào)用時(shí)的超時(shí)和錯(cuò)誤,防止由于其中一個(gè)服務(wù)的問(wèn)題而導(dǎo)致整體系統(tǒng)的癱瘓。

      7:還需要一個(gè)監(jiān)控功能,監(jiān)控每個(gè)服務(wù)調(diào)用花費(fèi)的時(shí)間等。

      目前主流的微服務(wù)框架:Dubbo、 SpringCloud、thrift、Hessian等,目前國(guó)內(nèi)的中小企業(yè)用的大多數(shù)都是Dubbo,SpringCloud。

       

      SpringCloud項(xiàng)目簡(jiǎn)介

       

       springCloud是基于SpringBoot的一整套實(shí)現(xiàn)微服務(wù)的框架。他提供了微服務(wù)開(kāi)發(fā)所需的配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、全局鎖、決策競(jìng)選、分布式會(huì)話和集群狀態(tài)管理等組件。最重要的是跟spring boot框架一起使用的話,會(huì)讓你開(kāi)發(fā)微服務(wù)架構(gòu)的云服務(wù)非常好的方便。

      SpringBoot旨在簡(jiǎn)化創(chuàng)建產(chǎn)品級(jí)的 Spring 應(yīng)用和服務(wù),簡(jiǎn)化了配置文件,使用嵌入式web服務(wù)器,含有諸多開(kāi)箱即用微服務(wù)功能

       

      spring cloud子項(xiàng)目包括:

      Spring Cloud Config:配置管理開(kāi)發(fā)工具包,可以讓你把配置放到遠(yuǎn)程服務(wù)器,目前支持本地存儲(chǔ)、Git以及Subversion。

      Spring Cloud Bus:事件、消息總線,用于在集群(例如,配置變化事件)中傳播狀態(tài)變化,可與Spring Cloud Config聯(lián)合實(shí)現(xiàn)熱部署。

      Spring Cloud Netflix:針對(duì)多種Netflix組件提供的開(kāi)發(fā)工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。

      Netflix Eureka:云端負(fù)載均衡,一個(gè)基于 REST 的服務(wù),用于定位服務(wù),以實(shí)現(xiàn)云端的負(fù)載均衡和中間層服務(wù)器的故障轉(zhuǎn)移。

      Netflix Hystrix:容錯(cuò)管理工具,旨在通過(guò)控制服務(wù)和第三方庫(kù)的節(jié)點(diǎn),從而對(duì)延遲和故障提供更強(qiáng)大的容錯(cuò)能力。

      Netflix Zuul:邊緣服務(wù)工具,是提供動(dòng)態(tài)路由,監(jiān)控,彈性,安全等的邊緣服務(wù)。

       

      SpringCloud特點(diǎn):

      1:約定優(yōu)于配置

      2:開(kāi)箱即用、快速啟動(dòng)

      3:適用于各種環(huán)境

      4:輕量級(jí)的組件

      5:組件支持豐富,功能齊全

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多