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