《深入理解 Spring Cloud 与微服务构建》第三章 Spring Cloud

文章目录

  • 《深入理解 Spring Cloud 与微服务构建》第三章 Spring Cloud
  • 一、Spring Cloud 简介
    • 1.简介
    • 2.常用组件
  • 二、项目一览

一、Spring Cloud 简介

1.简介

Spring Cloud 的首要目标就是通过提供一系列开发组件和框架,帮助开发者迅速搭建一个分布式的微服务系统。Spring Cloud 是通过包装其它技术框架来实现的,例如包装开源的 Netflix OSS 组件,实现了一套通过基于注解、Java 配置和基于模板开发的微服务框架。Spring Cloud 提供了开发分布式微服务系统的一些常用组件,例如服务注册和发现、配置中心、熔断器、智能路由、微代理、控制总线、全局锁、分布式会话等

2.常用组件

服务注册和发现组件 Eureka
利用 Eureka 组件可以很轻松地实现服务的注册和发现的功能。Eureka 组件提供了服务的健康监测,以及界面友好的 UI。通过 Eureka 组件提供的 UI,Eureka 组件可以让开发人员随时了解服务单元的运行情况。另外 Spring Cloud 也支持 Consul 和 Zookeeper,用于注册和发现服务

熔断组件 Hystrix
Hystrix 是一个熔断组件,它除了有一些基本的熔断器功能外,还能够实现服务降级、服务限流的功能。另外,Hystrix 提供了熔断器的健康监测,以及熔断器健康数据的 API 接口。Hystrix Dashboard 组件提供了单个服务熔断器的健康状态数据的界面展示功能,Hystrix Turbine 组件提供了多个服务的熔断器的健康状态数据的界面展示功能

负载均衡组件 Ribbon
Ribbon 是一个负载均衡组件,它通常和 Eureka、Zuul、RestTemplate、Feign 配合使用。Ribbon 和 Zuul 配合,很容易做到负载均衡,将请求根据负载均衡策略分配到不同的服务实例中。Ribbon 和 RestTemplate、Feign 配合,在消费服务时能够做到负载均衡

路由网关 Zuul
路由网关 Zuul 有智能路由和过滤的功能。内部服务的 API 接口通过 Zuul 网关统一对外暴露,内部服务的 API 接口不直接暴露,防止了内部服务敏感信息对外暴露。在默认的情况下,Zuul 和 Ribbon 相结合,能够做到负载均衡、智能路由。Zuul 的过滤功能是通过拦截请求来实现的,可以对一些用户的角色和权限进行判断,起到安全验证的作用,同时也可以用于输出实时的请求日志

上述的 4 个组件都来自于 Netflix 公司,统称为 Spring Cloud Netflix

Spring Cloud Config
Spring Cloud Config 组件提供了配置文件统一管理的功能。Spring Cloud Config 包括 Server 端和 Client 端,Server 端读取本地仓库或者远程仓库的配置文件,所有的 Client 向 Server 读取配置信息,从而达到配置文件统一管理的目的。通常情况下,Spring Cloud Config 和 Spring Cloud Bus 相互配合刷新指定 Client 或所有 Client 的配置文件

Spring Cloud Security
Spring Cloud Security 是对 Spring Security 组件的封装,Spring Cloud Security 向服务单元提供了用户验证和权限认证。一般来说,单独在微服务系统中使用 Spring Cloud Security 是很少见的,一般它会配合 Spring Security OAuth2 组件一起使用,通过搭建授权服务,验证 Token 或者 JWT 这种形式对整个微服务系统进行安全验证

Spring Cloud Sleuth
Spring Cloud Sleuth 是一个分布式链路追踪组件,它封装了 Dapper、Zipkin 和 Kibana 等组件,通过它可以知道服务之间的相互依赖关系,并实时观察链路的调用情况

Spring Cloud Stream
Spring Cloud Stream 是 Spring Cloud 框架的数据流操作包,可以封装 RabbitMQ、ActiveMQ、Kafka、Redis 等消息组件,利用 Spring Cloud Strream 可以实现消息的接收和发送

一个简单的由 Spring Cloud 构建的微服务系统,通常由服务注册中心 Eureka、网关 Zuul、配置中心 Config 和授权服务 Auth 构成

二、项目一览

  • Spring Cloud Config:服务配置中心,将所有的服务的配置文件放到本地仓库或者远程仓库,配置中心负责读取仓库的配置文件,其它服务向配置中心读取配置。Spring Cloud Config 将服务的配置统一管理,并可以在不人为重启服务的情况下进行服务配置的刷新
  • Spring Cloud Netflix:它是通过包装了 Netflix 公司的微服务组件实现的,也是 SpringCloud 核心的核心组件,包括 Eureka、Hystrix、Zuul 和 Archaius 等
  • Eureka:服务注册和发现组件
  • Hystrix:熔断器组件。Hystrix 通过控制服务的 API 接口的熔断器来转移故障,防止微服务系统发生雪崩效应。另外,Hystrix 能够起到服务限流和服务降级的作用。使用 Hystrix Dashboard 组件监控单个服务的熔断器的状态,使用 Turbine 组件可以聚合多个服务的熔断器的状态
  • Zuul:智能路由网关组件。Netflix Zuul 能够起到智能路由和请求过滤的作用,是服务接口统一暴露的关键模块,也是安全验证、权限控制的一道门
  • Feign:声明式远程调度组件
  • Ribbon:负载均衡组件
  • Archaius:配置管理 API 的组件,一个基于 Java 的配置管理库,主要用于多配置的动态获取
  • Spring Cloud Bus:消息总线组件,常和 Spring Cloud Config 配合使用,用于动态刷新服务的配置
  • Spring Cloud Sleuth:服务链路追踪组件,封装了 Dapper、Zipkin、Kibina 等组件,可以实时监控服务的链路调用情况
  • Spring Cloud Data Flow:大数据操作组件,Spring Cloud Data Flow 是 Spring XD 的替代品,也是一个混合计算的模型,可以通过命令行的方式操作数据流
  • Spring Cloud Security:安全模块组件,是对 Spring Security 的封装,通常配合 OAuth2 使用,来保护微服务系统的安全
  • Spring Cloud Consul:该组件是 Spring Cloud 对 Consul 的封装,和 Eureka、Consul 类似,用于服务的注册和发现
  • Spring Cloud Stream:数据流操作组件,可以封装 Redis、RabbitMQ、Kafka 等组件,实现发送和接收消息等
  • Spring Cloud CLI:该组件是 Spring Cloud 对 Spring Boot CLI 的封装,可以让用户以命令行方式快速运行和搭建容器
  • Spring Cloud Task:该组件基于 Spring Task,提供了任务调度和任务管理的功能
  • Spring Cloud Connectors:用于 PaaS 云平台连接到后端

《深入理解 Spring Cloud 与微服务构建》第三章 Spring Cloud相关推荐

  1. 《深入理解 Spring Cloud 与微服务构建》第九章 熔断器 Hystrix

    <深入理解 Spring Cloud 与微服务构建>第九章 熔断器 Hystrix 文章目录 <深入理解 Spring Cloud 与微服务构建>第九章 熔断器 Hystrix ...

  2. 《深入理解 Spring Cloud 与微服务构建》第二章 微服务应该具备的功能

    <深入理解 Spring Cloud 与微服务构建>第二章 微服务应该具备的功能 文章目录 <深入理解 Spring Cloud 与微服务构建>第二章 微服务应该具备的功能 一 ...

  3. 《深入理解 Spring Cloud 与微服务构建》第一章 微服务简介

    <深入理解 Spring Cloud 与微服务构建>第一章 微服务简介 文章目录 <深入理解 Spring Cloud 与微服务构建>第一章 微服务简介 一.单体架构及其存在的 ...

  4. 《深入理解Spring Cloud与微服务构建》出版啦!

    作者简介 方志朋,毕业于武汉理工大学,CSDN博客专家,专注于微服务.大数据等领域,乐于分享,爱好开源,活跃于各大开源社区.著有<史上最简单的Spring Cloud教程>,累计访问量超过 ...

  5. 《深入理解 Spring Cloud 与微服务构建》第十八章 使用 Spring Security OAuth2 和 JWT 保护微服务系统

    <深入理解 Spring Cloud 与微服务构建>第十八章 使用 Spring Security OAuth2 和 JWT 保护微服务系统 文章目录 <深入理解 Spring Cl ...

  6. 《深入理解 Spring Cloud 与微服务构建》第十七章 使用 Spring Cloud OAuth2 保护微服务系统

    <深入理解 Spring Cloud 与微服务构建>第十七章 使用 Spring Cloud OAuth2 保护微服务系统 文章目录 <深入理解 Spring Cloud 与微服务构 ...

  7. 《深入理解 Spring Cloud 与微服务构建》第十六章 Spring Boot Security 详解

    <深入理解 Spring Cloud 与微服务构建>第十六章 Spring Boot Security 详解 文章目录 <深入理解 Spring Cloud 与微服务构建>第十 ...

  8. 《深入理解 Spring Cloud 与微服务构建》第十五章 微服务监控 Spring Boot Admin

    <深入理解 Spring Cloud 与微服务构建>第十五章 微服务监控 Spring Boot Admin 文章目录 <深入理解 Spring Cloud 与微服务构建>第十 ...

  9. 《深入理解 Spring Cloud 与微服务构建》第十四章 服务链路追踪 Spring Cloud Sleuth

    <深入理解 Spring Cloud 与微服务构建>第十四章 服务链路追踪 Spring Cloud Sleuth 文章目录 <深入理解 Spring Cloud 与微服务构建> ...

  10. 《深入理解 Spring Cloud 与微服务构建》第十三章 配置中心 Spring Cloud Config

    <深入理解 Spring Cloud 与微服务构建>第十三章 配置中心 Spring Cloud Config 文章目录 <深入理解 Spring Cloud 与微服务构建>第 ...

最新文章

  1. dmmbus地址_dmmbus新地址是多少_动漫台
  2. LaTeX技巧006:使用pdfLaTeX时,添加PDF文件属性的方法
  3. php页面上限制字符串长度,PHP如何限制字符串显示长度
  4. 微软新闻:英雄由此诞生
  5. iOS开发UI篇—UITableview控件使用小结
  6. python元组是数组吗,Python基础(4)——数组元组
  7. 在一个非套接字上尝试了一个操作。_鼠标+键盘上一个键,Excel操作效率瞬间提高一个档次,这也太神了...
  8. python入门经典100例-Python3经典100例(含习题答案) DOC 清晰版
  9. Flask入门 表单Flask-wtf form原生 Bootstrap渲染(七)
  10. ETL工具-Taskctl在Windows作业类型的使用(Soap服务驱动)
  11. Mcafee杀毒软件卸载不了
  12. linux安装智能输入法,Ubuntu中文智能拼音输入法配置
  13. 32位与64位到底什么区别?
  14. 周一清晨的领导课读书笔记
  15. python gpl_详细介绍 GPL 协议
  16. flink DataStream API(三)事件时间-内置水印生成器
  17. ASEMI整流模块MSAD165-16参数,MSAD165-16规格
  18. 多项目同时进行如何做好进度管理
  19. 手机沙盒隔离软件_360隔离沙箱下载_360隔离沙箱独立版下载 v3.0.0 官方版_天天下载手机版...
  20. 如何用USB启动系统

热门文章

  1. typeorm mysql2_指南 - 使用 TypeORM 和 Express 的示例 - 《TypeORM v0.2.20 中文文档》 - 书栈网 · BookStack...
  2. Java知识系统回顾整理01基础04操作符02关系操作符
  3. 判断数组是否有重复值
  4. mysql 命令行参数
  5. Classic ASP 系列(3) Application 对象
  6. hibernate mysql自定义变量_hibernate 跟 MySql in的参数变量
  7. (96)分频器设计(任意分频器)
  8. FPGA SPI总线协议简介
  9. Verilog实现AXI4-Lite源代码
  10. stm32使用stlink烧录后jlik烧不进去_【MCU实战经验】+用stm32单片机做J-Link和ST-Link...