- Spring Cloud微服務(wù)架構(gòu)實(shí)戰(zhàn)
- 陳韶健
- 1359字
- 2020-05-09 11:15:12
1.7 Spring Cloud工具套件介紹
Spring Cloud工具套件是一個(gè)龐大的家族,并且它對(duì)第三方的工具有很好的兼容性。限于篇幅,我們無(wú)法對(duì)所有組件進(jìn)行一一介紹,所以這里只對(duì)一些核心的和常用的組件進(jìn)行一個(gè)簡(jiǎn)要說(shuō)明,幫助讀者從整體上認(rèn)識(shí)和了解這個(gè)工具套件。Spring Cloud工具套件的思維導(dǎo)圖如圖1-4所示。

圖1-4
(1)Spring Cloud Netflix
這是Spring Cloud工具套件的核心,包含Netflix OSS的一些基礎(chǔ)組件,如Eureka、Hystrix、Zuul、Archaius、Ribbon和Turbine等,其中:
◎ Eureka是云端服務(wù)發(fā)現(xiàn),用于云端服務(wù)注冊(cè)與定位,以實(shí)現(xiàn)云端服務(wù)發(fā)現(xiàn)和故障轉(zhuǎn)移等服務(wù)治理。
◎ Hystrix是一個(gè)可提供斷路器、容錯(cuò)機(jī)制、降級(jí)機(jī)制等功能的管理工具,通過(guò)這一工具可以實(shí)現(xiàn)對(duì)第三方庫(kù)的延遲,以及對(duì)故障轉(zhuǎn)移提供全面的監(jiān)測(cè)和調(diào)控。
◎ Zuul是在云平臺(tái)上提供動(dòng)態(tài)路由、監(jiān)控和安全等邊緣服務(wù)的管理框架。Zuul相當(dāng)于設(shè)備和微服務(wù)應(yīng)用的Web網(wǎng)站后端所有請(qǐng)求的前門。
◎ Archaius是一個(gè)配置管理API,提供動(dòng)態(tài)類型化屬性、線程安全配置操作、輪詢框架、回調(diào)機(jī)制等功能。
◎ Ribbon提供云端負(fù)載均衡管理,有多種負(fù)載均衡策略可供選擇,能自動(dòng)配合服務(wù)發(fā)現(xiàn)和斷路器使用。
◎ Turbine是聚合服務(wù)發(fā)送事件流數(shù)據(jù)的一個(gè)工具,使用可配置方式監(jiān)控集群中服務(wù)的運(yùn)行情況。
(2)Spring Cloud Bus
一個(gè)事件、消息總線,用于在集群中傳播狀態(tài)變化,可與Spring Cloud Config聯(lián)合使用,實(shí)現(xiàn)動(dòng)態(tài)配置管理。
(3)Spring Cloud Cluster
提供Leadership選舉,如ZooKeeper、Redis、Hazelcast和Consul常見(jiàn)狀態(tài)模式的抽象和實(shí)現(xiàn)。
(4)Spring Cloud Consul
封裝了Consul操作,Consul是一個(gè)服務(wù)發(fā)現(xiàn)與配置工具,可以與Docker容器無(wú)縫集成。
(5)Spring Cloud Security
基于Spring Security的安全工具包,可以為應(yīng)用添加安全控制。
(6)Spring Cloud Sleuth
日志收集工具包,封裝了Dapper和log-based追蹤,以及Zipkin和HTrace操作,為微服務(wù)應(yīng)用實(shí)現(xiàn)了一種分布式追蹤解決方案。
(7)Spring Cloud Data Flow
大數(shù)據(jù)操作工具,是Spring XD的替代產(chǎn)品。它是一個(gè)混合計(jì)算模型,結(jié)合了流數(shù)據(jù)與批量數(shù)據(jù)的處理方式。
(8)Spring Cloud Stream
數(shù)據(jù)流操作開(kāi)發(fā)包,封裝了與Redis、Rabbit、Kafka等發(fā)送和接收消息的方法。
(9)Spring Cloud Starters
使用Spring Boot方式啟動(dòng)項(xiàng)目工具包,為Spring Cloud提供開(kāi)箱即用的依賴管理。
(10)Spring Cloud Pipeline
提供了一個(gè)有步驟的固定部署管道,以確保應(yīng)用程序可以以零停機(jī)的方式部署,并且很容易在出錯(cuò)后進(jìn)行回滾。
Spring Cloud工具套件除自身包含豐富的組件庫(kù)外,對(duì)于第三方庫(kù),也具有很好的兼容性。借助于Spring Cloud Consul,我們可以很方便地使用Consul搭建注冊(cè)中心,在提供服務(wù)注冊(cè)與發(fā)現(xiàn)的基礎(chǔ)上,實(shí)現(xiàn)遠(yuǎn)程配置管理功能。
下面兩個(gè)組件是由第三方提供的。
(1)Spring Boot Admin
Spring Boot Admin通過(guò)Spring Boot提供的監(jiān)控接口,如/health、/info等,加上對(duì)當(dāng)前處于活躍狀態(tài)的會(huì)話數(shù)量、當(dāng)前應(yīng)用的并發(fā)數(shù)、延遲及其他度量信息等,可以對(duì)分布式環(huán)境中的Spring Cloud應(yīng)用實(shí)現(xiàn)實(shí)時(shí)的全程監(jiān)控。
(2)zipkin-dependencies
zipkin-dependencies是由第三方封裝的可運(yùn)行應(yīng)用程序包,可以對(duì)Spring Cloud應(yīng)用的運(yùn)行和調(diào)用關(guān)系進(jìn)行全程跟蹤,從而為故障診斷和檢查提供幫助。它可以使用Web方式或與Kafka結(jié)合使用的方式傳遞日志數(shù)據(jù),然后自動(dòng)分析數(shù)據(jù),生成應(yīng)用之間的調(diào)用路線圖。
在應(yīng)用及其接口的調(diào)用中,Spring Cloud工具套件提供了Gateway和OpenFeign等組件,以支持在不同環(huán)境下對(duì)應(yīng)用之間的快速調(diào)用。
Spring Boot是Spring Cloud的基礎(chǔ)組成部分,也是Spring開(kāi)發(fā)框架的根本所在。其中:
◎ Netty是一個(gè)以事件驅(qū)動(dòng)的非阻塞的高并發(fā)服務(wù)。
◎ WebFlux是一個(gè)全新的反應(yīng)式Web框架。
◎ Spring Data是一個(gè)通用的基于Spring編程模型并且能夠保留數(shù)據(jù)底層特殊性的數(shù)據(jù)存取組件。
◎ Spring Security是一個(gè)功能強(qiáng)大、高度可定制的身份驗(yàn)證和訪問(wèn)控制框架。
◎ Spring AMQP是基于Spring框架的AMQP消息解決方案,提供模板化的發(fā)送和接收消息的抽象層,提供基于消息驅(qū)動(dòng)的POJO消息監(jiān)聽(tīng)等,極大地方便我們基于RabbitMQ等消息中間件進(jìn)行相關(guān)開(kāi)發(fā)。
- 24小時(shí)學(xué)會(huì)電腦組裝與維護(hù)
- Python GUI Programming:A Complete Reference Guide
- 電腦組裝與維修從入門到精通(第2版)
- 辦公通信設(shè)備維修
- 深入淺出SSD:固態(tài)存儲(chǔ)核心技術(shù)、原理與實(shí)戰(zhàn)
- 硬件產(chǎn)品經(jīng)理成長(zhǎng)手記(全彩)
- Learning Game Physics with Bullet Physics and OpenGL
- 電腦橫機(jī)使用與維修
- 單片機(jī)項(xiàng)目設(shè)計(jì)教程
- 嵌入式系統(tǒng)設(shè)計(jì)大學(xué)教程(第2版)
- MicroPython Cookbook
- PIC系列單片機(jī)的流碼編程
- 嵌入式系統(tǒng)原理:基于Arm Cortex-M微控制器體系
- Arduino+3D打印創(chuàng)新電子制作2
- Mastering Unity 2D Game Development