當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
2、Spring Cloud - 入门概述
生活随笔
收集整理的這篇文章主要介紹了
2、Spring Cloud - 入门概述
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言:
Spring Cloud是什么:
官網(wǎng)說(shuō)明 SpringCloud,基于SpringBoot提供了一套微服務(wù)解決方案,包括服務(wù)注冊(cè)與發(fā)現(xiàn),配置中心, 全鏈路監(jiān)控,服務(wù)網(wǎng)關(guān),負(fù)載均衡,熔斷器等組件,除了基于NetFlix的開(kāi)源組件做高度抽象封 裝之外,還有一些選型中立的開(kāi)源組件。 SpringCloud利用SpringBoot的開(kāi)發(fā)便利性巧妙地簡(jiǎn)化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開(kāi)發(fā),SpringCloud為開(kāi)發(fā) 人員提供了快速構(gòu)建分布式系統(tǒng)的一些工具,包括配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總 線、全局鎖、決策競(jìng)選、分布式會(huì)話等等,它們都可以用SpringBoot的開(kāi)發(fā)風(fēng)格做到一鍵啟動(dòng)和部署。 SpringBoot并沒(méi)有重復(fù)制造輪子,它只是將目前各家公司開(kāi)發(fā)的比較成熟、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來(lái), 通過(guò)SpringBoot風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,最終給開(kāi)發(fā)者留出了一套簡(jiǎn)單易懂、易部署和 易維護(hù)的分布式系統(tǒng)開(kāi)發(fā)工具包 SpringCloud=分布式微服務(wù)架構(gòu)下的一站式解決方案,是各個(gè)微服務(wù)架構(gòu)落地技術(shù)的集合體,俗稱微服務(wù)全家桶 ? SpringCloud和SpringBoot是什么關(guān)系? SpringBoot專注于快速方便的開(kāi)發(fā)單個(gè)個(gè)體微服務(wù)。 SpringCloud是關(guān)注全局的微服務(wù)協(xié)調(diào)整理治理框架,它將SpringBoot開(kāi)發(fā)的一個(gè)個(gè)單體微服務(wù)整合并管理起來(lái), 為各個(gè)微服務(wù)之間提供,配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總線、全局鎖、決策競(jìng)選、分布式會(huì)話等等集成服務(wù) SpringBoot可以離開(kāi)SpringCloud獨(dú)立使用開(kāi)發(fā)項(xiàng)目,但是SpringCloud離不開(kāi)SpringBoot,屬于依賴的關(guān)系. SpringBoot專注于快速、方便的開(kāi)發(fā)單個(gè)微服務(wù)個(gè)體,SpringCloud關(guān)注全局的服務(wù)治理框架。 ? Dubbo是怎么到SpringCloud的? 哪些優(yōu)缺點(diǎn)讓去技術(shù)選型 1、?目前成熟的互聯(lián)網(wǎng)架構(gòu)(分布式+服務(wù)治理Dubbo) 2、我們把SpringCloud VS DUBBO進(jìn)行一番對(duì)比 活躍度:https://github.com/dubbo? ?https://github.com/spring-cloud 對(duì)比結(jié)果:?
?2.1、微服務(wù)應(yīng)該具備的功能
微服務(wù)具有以下的特點(diǎn):微服務(wù)的功能主要體現(xiàn)在以下兒個(gè)方面:
2.1.1 服務(wù)的注冊(cè)與發(fā)現(xiàn)
2.1 .2 服務(wù)的負(fù)載均衡
服務(wù)的負(fù)載均衡將服務(wù)注冊(cè)中心高可用
?
?2.1.3 服務(wù)的容錯(cuò)
1個(gè)微服務(wù)系統(tǒng)有很多個(gè)服務(wù),當(dāng) 服務(wù) F因某些原因?qū)е铝朔?wù)的不可用 來(lái)自于用戶的網(wǎng)絡(luò)請(qǐng)求需要調(diào)用服務(wù)F 由于服務(wù)F 無(wú)響應(yīng),用戶的請(qǐng)求都處于阻塞狀態(tài) 在高并發(fā)的場(chǎng)景下 短時(shí)間內(nèi)會(huì)導(dǎo)致服務(wù)器的 線程資源消耗殆盡。 依賴于服務(wù)F 的其他的服務(wù) ,例如 圖中的服務(wù) E、服務(wù)G 、服務(wù) J, 會(huì)等待服務(wù)F 的響應(yīng),處于阻塞狀態(tài),導(dǎo)致這些服務(wù)的線程資源消耗殆盡 會(huì)出現(xiàn):雪崩效應(yīng) 為了解決分布式系統(tǒng)的雪崩效應(yīng),分布式系統(tǒng)引進(jìn)了熔斷器機(jī)制 熔斷器( Circuit Breaker)一詞來(lái)源于物理學(xué)中的電路知識(shí) 它的作用是當(dāng)電路中? 出現(xiàn)故障時(shí)迅速切斷電路,起到保護(hù)電路的作用 當(dāng)一 個(gè)服務(wù)的處理用戶請(qǐng)求 失敗次數(shù)在一 定時(shí)間內(nèi)于設(shè)定的閥值時(shí),熔斷器處于關(guān)閉狀態(tài),服務(wù)正常 當(dāng)服務(wù)處理用戶請(qǐng)求的失敗次數(shù)大于設(shè)定的閥值時(shí),說(shuō)明服務(wù)出現(xiàn)了故障,打開(kāi)熔斷器, 這時(shí)所有的請(qǐng)求會(huì)執(zhí)行快速失敗,不執(zhí)行業(yè)務(wù)邏輯。 當(dāng)處于打開(kāi)狀態(tài)的熔斷器時(shí)一 段時(shí)間后會(huì)處于半打開(kāi)狀態(tài),并執(zhí)行 一定數(shù)量的請(qǐng)求 剩余的請(qǐng)求會(huì)執(zhí)行快速失敗,若執(zhí)行的請(qǐng)求失敗了,則繼續(xù)打開(kāi)熔斷器;若成功了,則將熔斷器關(guān)閉作用:
Netflix的 Hystrix 熔斷器開(kāi)源組件功能非常強(qiáng)大,不僅有烙斷器的功能,還有熔斷器的狀態(tài) 監(jiān)測(cè),并提供界面友好的 UI 開(kāi)發(fā)人員或者運(yùn)維人員通過(guò) UI 界面能夠直觀地看到熔斷器的狀 態(tài)和各種性能指標(biāo)。 ?2.1.4 服務(wù)網(wǎng)關(guān)
2.1 .5 服務(wù)配置的統(tǒng)一管理
大致過(guò)程如下: 對(duì)于集群化的服務(wù) 可以通過(guò)使用消息總線來(lái)刷新多個(gè)服務(wù)實(shí)例。如果服務(wù)數(shù)量較多,對(duì)配置 中心需要考慮集群化部署,從而使配置中心高可用,做分布式集群2.1.6 服務(wù)鏈路追蹤
微服務(wù)系統(tǒng)是一個(gè)分布式架構(gòu)的系統(tǒng),微服務(wù)系統(tǒng)按業(yè)務(wù)劃分服務(wù)單元, 一個(gè)微服務(wù)系統(tǒng) 往往有很多個(gè)服務(wù)單元。由于服務(wù)單元數(shù)量很多且業(yè)務(wù)復(fù)雜, 服務(wù)與服務(wù)之間的調(diào)用有可能非常復(fù)雜,一 旦出現(xiàn)了異常和 錯(cuò)誤,就會(huì)很難去定位。所以在微服務(wù)架構(gòu)中,必須實(shí)現(xiàn)分 布式鏈路追蹤,去跟進(jìn) 個(gè)請(qǐng)求到底有哪些服務(wù)參與,參與 的順序又是怎樣的 ,從而使每個(gè)請(qǐng)求鏈路清晰可見(jiàn),出了問(wèn) 題很快就能定位。2.2、SpringCloud
?2.2.1 簡(jiǎn)介
Spring Cloud 是基于 Spring Boot的, Spring Boot 是由 Pivotal 團(tuán)隊(duì)提供的全新 Web框架 它主要的特點(diǎn)就是簡(jiǎn)化了開(kāi)發(fā)和部署的過(guò)程 簡(jiǎn)化了 Spring 復(fù)雜的配置和依賴管理,通過(guò)起步依賴和內(nèi)置 Servilet 容器能夠使開(kāi)發(fā)者迅速搭一個(gè) Web 工程。 Spring Cloud 在開(kāi)發(fā)部署上繼承了 Spring Boot的一些優(yōu)點(diǎn),提高其在開(kāi)發(fā)和部署上的效率。 Spring Cloud 的首要目標(biāo)就是通過(guò)提供 系列開(kāi)發(fā)組件和框架,幫助開(kāi)發(fā)者迅速搭建一個(gè)分布式的微服務(wù)系統(tǒng)2.2.2 常用組件
1、服務(wù)注冊(cè)和發(fā)現(xiàn)組件 Eureka 利用 Eureka 組件可以很輕松地實(shí)現(xiàn)服務(wù)的注冊(cè)和發(fā)現(xiàn)的功能。 2、熔斷組件 Hystrix Hystrix是一個(gè) 熔斷組件,它除了有一些些基本的熔斷器功能外,還能夠?qū)崿F(xiàn)服務(wù)降級(jí)、服務(wù)限流的功能。 3、負(fù)載均衡組件 Ribbon Ribbon是一個(gè)個(gè)負(fù)載均衡組件,它通常和 Eureka Zuul RestTemplate Feign 配合使用。 4、路由網(wǎng)關(guān) Zuul 路由網(wǎng)關(guān) Zuul 有智能路由和過(guò)濾的功能。內(nèi)部服務(wù)的 API 接口通過(guò) Zuul 網(wǎng)關(guān)統(tǒng) 一對(duì)外暴露, 內(nèi)部服務(wù)的 API 接口不直接暴露,防止了內(nèi)部服務(wù)敏感信息對(duì)外暴露。 5、Spring Cloud Config Spring Cloud Config 組件提供了配置文件統(tǒng) 管理的功能。 Spring Cloud Config Server包括Server端和 Client Server 端讀取本地倉(cāng)庫(kù)或者遠(yuǎn)程倉(cāng)庫(kù)的配 置文件,所有的 Client向 Server讀取配置信息,從而達(dá)到配置文件統(tǒng) 管理的目的。 6、Spring Cloud Security Spring Cloud Security 是對(duì) Spring Security 組件的封裝 Spring Cloud Security 向服務(wù)單元 提供了用戶驗(yàn)證和權(quán)限認(rèn)證。(很少使用) 7、Spring Cloud Sleuth Spring Cloud Sleuth 是一個(gè)分布式鏈路追蹤組件,它封裝了 Dapper 、Zipkin、 Kibana 等組 件,通過(guò)它可以知道服務(wù)之間的相互依賴關(guān)系,并實(shí)時(shí)觀察鏈路的調(diào)用情況 8、Spring Cloud Stream Spring Cloud Stream Spring Cloud 框架的數(shù)據(jù)流操作包,可以封裝 RabbitMq ActiveMq Kafka Red is 等消息組件, 利用 Spring Cloud Stream 可以實(shí)現(xiàn)消息的接收和發(fā)送。?
?2.2.3 項(xiàng)目一覽表
?
2.3、Dubbo簡(jiǎn)介
Dubbo 是阿里巴巴開(kāi)源的一個(gè)分布式服務(wù)框架,致力于提供高性能和 透明化的 RPC 遠(yuǎn)程 服務(wù)調(diào)用方 ,以及 SOA 服務(wù)冶理方案 。 核心:架構(gòu)圖:
?
流程圖如下:??
特性:??
?2.4、spring cloud與Dubbo的比較
?
轉(zhuǎn)載于:https://www.cnblogs.com/Mrchengs/p/10643776.html
總結(jié)
以上是生活随笔為你收集整理的2、Spring Cloud - 入门概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2.6 Go 读取CSV
- 下一篇: 一次php curl卡住的bug分析