摘要:負(fù)載均衡組件是一個(gè)負(fù)載均衡組件,它通常和配合使用。和配合,很容易做到負(fù)載均衡,將請(qǐng)求根據(jù)負(fù)載均衡策略分配到不同的服務(wù)實(shí)例中。和配合,在消費(fèi)服務(wù)時(shí)能夠做到負(fù)載均衡。在默認(rèn)的情況下,和相結(jié)合,能夠做到負(fù)載均衡智能路由。
2.2.1 簡(jiǎn)介
Spring Cloud 是基于 Spring Boot 的。 Spring Boot 是由 Pivotal 團(tuán)隊(duì)提供的全新 Web 框架, 它主要的特點(diǎn)就是簡(jiǎn)化了開發(fā)和部署的過程,簡(jiǎn)化了 Spring 復(fù)雜的配置和依賴管理,通過起 步依賴和內(nèi)置 Serviet 容器能夠使開發(fā)者迅速搭起一個(gè) Web 工程。
2.2.2 常用組件(1 )服務(wù)注冊(cè)和發(fā)現(xiàn)組件 Eureka
利用 Eureka 組件可以很輕松地實(shí)現(xiàn)服務(wù)的注冊(cè)和發(fā)現(xiàn)的功能。 Eureka 組件提供了服務(wù)的健 康監(jiān)測(cè),以及界面友好的 UI。通過 Eureka 組件提供的 UI, Eureka 組件可以讓開發(fā)人員隨時(shí)了 解服務(wù)單元的運(yùn)行情況。另外 Spring Cloud 也支持 Consul 和 Zookeeper,用于注冊(cè)和發(fā)現(xiàn)服務(wù)。
(2 )熔斷組件 Hystrix
Hystrix 是一個(gè)熔斷組件,它除了有一些基本的熔斷器功能外,還能夠?qū)崿F(xiàn)服務(wù)降級(jí)、服 務(wù)限流的功能。另外 Hystrix 提供了熔斷器的健康監(jiān)測(cè),以及熔斷器健康數(shù)據(jù)的 API 接口。 Hystrix Dashboard 組件提供了單個(gè)服務(wù)熔斷器的健康狀態(tài)數(shù)據(jù)的界面展示功能 , Hystrix Turbine 組件提供了多個(gè)服務(wù)的熔斷器的健康狀態(tài)數(shù)據(jù)的界面展示功能。
(3 )負(fù)載均衡組件 Ribbon
Ribbon 是一個(gè)負(fù)載均衡組件,它通常和 Eureka、 Zuul、 RestTemplate、 Feign 配合使用。 Ribbon 和 Zuul 配合,很容易做到負(fù)載均衡,將請(qǐng)求根據(jù)負(fù)載均衡策略分配到不同的服務(wù)實(shí)例 中。 Ribbon 和I RestTemplate、 Feign 配合,在消費(fèi)服務(wù)時(shí)能夠做到負(fù)載均衡。
(4)路由網(wǎng)關(guān) Zuul
路由網(wǎng)關(guān)Zuul 有智能路由和過濾的功能。內(nèi)部服務(wù)的 API 接口通過Zuul 網(wǎng)關(guān)統(tǒng)一對(duì)外暴露, 內(nèi)部服務(wù)的 API 接口不直接暴露,防止了內(nèi)部服務(wù)敏感信息對(duì)外暴露。在默認(rèn)的情況下, Zuul 和Ribbon 相結(jié)合,能夠做到負(fù)載均衡、 智能路由。 Zuul 的過濾功能是通過攔截請(qǐng)求來實(shí)現(xiàn)的, 可以 對(duì)一些用戶的角色和權(quán)限進(jìn)行判斷,起到安全驗(yàn)證的作用, 同時(shí)也可以用于輸山實(shí)時(shí)的請(qǐng)求曰志。 上述的 4 個(gè)組件都來自于 Netflix 的公司 , 統(tǒng)一稱為 Spring Cloud Netflix。
( 5) Spring Cloud Config
Spring Cloud Config 組件提供了配置文件統(tǒng)一管理的功能。Spring Cloud Config 包括 Server 端和 Client 端, Server 端讀取本地倉(cāng)庫(kù)或者遠(yuǎn)程倉(cāng)庫(kù)的配置文件,所有的 Client 向 Server 讀 取配置信息,從而達(dá)到配置文件統(tǒng)一管理的目的。通常情況下, Spring Cloud Config 和 Spring Cloud Bus 相互配合刷新指定 Client 或所有 Client 的配置文件。
( 6) Spring Cloud Security
Spring Cloud Security 是對(duì) Spring Security 組件的封裝, Spring Cloud Security 向服務(wù)單元 提供了用戶驗(yàn)證和權(quán)限認(rèn)證。一般來說,多帶帶在微服務(wù)系統(tǒng)中使用 Spring Cloud Security 是很 少見的, 一般它會(huì)配合 Spring Security 0Auth2 組件一起使用,通過搭建授權(quán)服務(wù),驗(yàn)證 Token 或者 JWT 這種形式對(duì)整個(gè)微服務(wù)系統(tǒng)進(jìn)行安全驗(yàn)證。
( 7) Spring Cloud Sleuth
Spring Cloud Sleuth 是一個(gè)分布式鏈路追蹤組件,它封裝了 Dapper、 Zipkin 和 Kibana 等組 件,通過它可以知道服務(wù)之間的相互依賴關(guān)系,并實(shí)時(shí)觀察鏈路的調(diào)用情況。
( 8) Spring Cloud Stream
Spring Cloud Stream 是 Spring Cloud 框架的數(shù)據(jù)流操作包,可以封裝 RabbitMq、ActiveMq、 Kafka、 Redis 等消息組件, 利用 Spring Cloud Stream 可以實(shí)現(xiàn)消息的接收和發(fā)送。
Spring Cloud Config:服務(wù)配置中心,將所有的服務(wù)的配置文件放到本地倉(cāng)庫(kù)或者遠(yuǎn)程倉(cāng)庫(kù),配置中心負(fù)責(zé)讀取倉(cāng)庫(kù)的配置文件,其他服務(wù)向配置中心讀取配置。 Spring Cloud Config 使得服務(wù)的配置統(tǒng)一管理,并可以在不人為重啟服務(wù)的情況下進(jìn)行配置 文件的刷新。
Spring Cloud Netflix:它是通過包裝了 Netflix 公司的微服務(wù)組件實(shí)現(xiàn)的,也是 Spring Cloud核心的核心組件,包括 Eureka、 Hystrix、 Zuul、 Archaius 等。
Eureka:服務(wù)注冊(cè)和發(fā)現(xiàn)組件。
Hystrix:熔斷器組件。 Hystrix 通過控制服務(wù)的 API 接口的熔斷來轉(zhuǎn)移故障,防止微 服務(wù)系統(tǒng)發(fā)生雪崩效應(yīng)。另外,Hystrix 能夠起到服務(wù)限流和服務(wù)降級(jí)的作用。使用 Hystrix Dashboard 組件監(jiān)控單個(gè)服務(wù)的熔斷器的狀態(tài),使用Turbine 組件可以聚合多 個(gè)服務(wù)的熔斷器的狀態(tài)。
Zuul:智能路由網(wǎng)關(guān)組件。 Netflix Zuul 能夠起到智能路由和請(qǐng)求過濾的作用,是服務(wù)接口統(tǒng)一暴露的關(guān)鍵模塊,也是安全驗(yàn)證、權(quán)限控制的一道門。
Feign: 聲明式遠(yuǎn)程調(diào)度組件。
Ribbon: 負(fù)載均衡組件。
Archaius:配置管理 API 的組件, 一個(gè)基于 Java 的配置管理庫(kù), 主要用于多配置的動(dòng) 態(tài)獲取。
Spring Cloud Bus: 消息總線組件,常和 Spring Cloud Config 配合使用,用于動(dòng)態(tài)刷 新服務(wù)的配置。
Spring Cloud Sleuth:服務(wù)鏈路追蹤組件,封裝了 Dapper、 Zipkin, Kibina 等組件,可以實(shí)時(shí)監(jiān)控服務(wù)的鏈路調(diào)用情況。
Spring Cloud Data Flow:大數(shù)據(jù)操作組件, Spring Cloud Data Flow 是 SpringXD的替 代品,也是一個(gè)混合計(jì)算的模型,可以通過命令行的方式操作數(shù)據(jù)流。
Spring Cloud Security: 安全模塊組件,是對(duì) Spring Security 的封裝,通常配合 0Auth2使用來保護(hù)微服務(wù)系統(tǒng)的安全。 口 Spring Cloud Consul:該組件是 Spring Cloud 對(duì) Consul的封裝,和 Eureka 類似,它是 另一個(gè)服務(wù)注冊(cè)和發(fā)現(xiàn)組件。
Spring Cloud Zookeeper: 該組件是 Spring Cloud對(duì)Zookeeper 的封裝,和Eureka、Consul 類似,用于服務(wù)的注冊(cè)和發(fā)現(xiàn)。
Spring Cloud Stream:數(shù)據(jù)流操作組件,可以封裝 Redis、 RabbitMQ、 Kafka 等組件,實(shí)現(xiàn)發(fā)送和接收消息等。
Spring Cloud CLI:該組件是 Spring Cloud 對(duì) Spring Boot CLI 的封裝,可以讓用戶以命令行方式快速運(yùn)行和搭建容器。
Spring Cloud Task: 該組件基于 Spring Task,提供了任務(wù)調(diào)度和任務(wù)管理的功能。
Spring Cloud Connectors: 用于 Paas 云平臺(tái)連接到后端。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71207.html
摘要:微服務(wù)的設(shè)計(jì)原則軟件設(shè)計(jì)每一個(gè)版本都在變化,所以軟件設(shè)計(jì)應(yīng)該是漸進(jìn)式發(fā)展。在微服務(wù)設(shè)計(jì)時(shí),一定要考慮清楚這三個(gè)難題,從而選擇合適的框架。目前比較流行的微服務(wù)框架有社區(qū)的公司的等。微服務(wù)應(yīng)該具備的功能。 微服務(wù)的設(shè)計(jì)原則 軟件設(shè)計(jì)每一個(gè)版本都在變化,所以軟件設(shè)計(jì)應(yīng)該是漸進(jìn)式發(fā)展。 軟件從一開始就不應(yīng)該被設(shè)計(jì)成微服務(wù)架構(gòu),微服務(wù)架構(gòu)固然有優(yōu)勢(shì),但是它需要更多的資源,包括服務(wù)器資源、技術(shù)人員...
摘要:微服務(wù)的復(fù)雜度框架知識(shí)服務(wù)于服務(wù)通信服務(wù)與服務(wù)之間相互依賴。服務(wù)的部署可選用。指服務(wù)的可用性。微服務(wù)系統(tǒng)通常是一個(gè)系統(tǒng),即同時(shí)滿足了可用性和分區(qū)容錯(cuò)。兩階段提交,將事務(wù)分成兩部分能夠大大提高分布式事務(wù)成功的概率。 主要體現(xiàn)在如下方面。 微服務(wù)的復(fù)雜度(框架知識(shí)、服務(wù)于服務(wù)通信、服務(wù)與服務(wù)之間相互依賴)。 分布式事務(wù)(重點(diǎn))。 服務(wù)的劃分(業(yè)務(wù)場(chǎng)景劃分邊界,最好無耦合,都能單獨(dú)運(yùn)行和替...
摘要:口服務(wù)的負(fù)載均衡。服務(wù)的注冊(cè)與發(fā)現(xiàn)接口管理服務(wù)注冊(cè)是指向服務(wù)注冊(cè)中心注冊(cè)一個(gè)服務(wù)實(shí)例,服務(wù)提供者將自己的服務(wù)信息如服務(wù)名地址等告知服務(wù)注冊(cè)中心。服務(wù)注冊(cè)中心會(huì)提供服務(wù)的健康檢查方案,檢查被注冊(cè)的服務(wù)是否可用。服務(wù)降級(jí)的功能。 微服務(wù)具有以下的特點(diǎn)。 口 按照業(yè)務(wù)來劃分服務(wù),單個(gè)服務(wù)代碼量小,業(yè)務(wù)單一,易于維護(hù)。 口 每個(gè)微服務(wù)都有自己獨(dú)立的基礎(chǔ)組件,例如數(shù)據(jù)庫(kù)、 緩存等,且運(yùn)行在獨(dú)立...
摘要:?jiǎn)误w架構(gòu)簡(jiǎn)介經(jīng)典的層模型,即表示層業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層??跀?shù)據(jù)訪問層用于操作數(shù)據(jù)庫(kù),用戶在表示層會(huì)產(chǎn)生大量的數(shù)據(jù),通過數(shù)據(jù)訪問層對(duì)數(shù)據(jù)庫(kù)進(jìn)行讀寫操作。 1.1.1 單體架構(gòu)簡(jiǎn)介 經(jīng)典的 3 層模型,即表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。 口 表示層: 用于直接和用戶交互,也稱為交互層,通常是網(wǎng)頁(yè)、 UI 等。 口 業(yè)務(wù)邏輯層:即業(yè)務(wù)邏輯處理層,例如用戶輸入的信息要經(jīng)過業(yè)務(wù)邏輯層的處理...
摘要:熔斷機(jī)制為了防止雪崩效應(yīng)事件的發(fā)生,分布式系統(tǒng)采用了熔斷機(jī)制。為了解決這一難題,微服務(wù)架構(gòu)引入了熔斷機(jī)制。由于微服務(wù)系統(tǒng)是分布式系統(tǒng),服務(wù)與服務(wù)之間沒有任何的禍合。 1.2.1 什么是微服務(wù) 按業(yè)務(wù)劃分為一個(gè)獨(dú)立運(yùn)行的程序,即服務(wù)單元。 服務(wù)之間通過 HTTP 協(xié)議相互通信。 自動(dòng)化部署。 可以用不同的編程語言。 可以用不同的存儲(chǔ)技術(shù)。 服務(wù)集中化管理。 微服務(wù)是一個(gè)分布式系統(tǒng)。 ...
閱讀 2262·2021-11-22 14:56
閱讀 10079·2021-09-08 10:45
閱讀 1982·2019-08-30 13:54
閱讀 2870·2019-08-29 16:54
閱讀 2012·2019-08-29 14:20
閱讀 1779·2019-08-29 12:25
閱讀 1859·2019-08-29 12:17
閱讀 1054·2019-08-23 18:29