资讯专栏INFORMATION COLUMN

深入理解Spring Cloud与微服务构建【二】 - 2.2 Spring Cloud

Rocko / 2817人阅读

摘要:负载均衡组件是一个负载均衡组件,它通常和配合使用。和配合,很容易做到负载均衡,将请求根据负载均衡策略分配到不同的服务实例中。和配合,在消费服务时能够做到负载均衡。在默认的情况下,和相结合,能够做到负载均衡智能路由。

2.2.1 简介

Spring Cloud 是基于 Spring Boot 的。 Spring Boot 是由 Pivotal 团队提供的全新 Web 框架, 它主要的特点就是简化了开发和部署的过程,简化了 Spring 复杂的配置和依赖管理,通过起 步依赖和内置 Serviet 容器能够使开发者迅速搭起一个 Web 工程。

2.2.2 常用组件

(1 )服务注册和发现组件 Eureka
利用 Eureka 组件可以很轻松地实现服务的注册和发现的功能。 Eureka 组件提供了服务的健 康监测,以及界面友好的 UI。通过 Eureka 组件提供的 UI, Eureka 组件可以让开发人员随时了 解服务单元的运行情况。另外 Spring Cloud 也支持 Consul 和 Zookeeper,用于注册和发现服务。
(2 )熔断组件 Hystrix
Hystrix 是一个熔断组件,它除了有一些基本的熔断器功能外,还能够实现服务降级、服 务限流的功能。另外 Hystrix 提供了熔断器的健康监测,以及熔断器健康数据的 API 接口。 Hystrix Dashboard 组件提供了单个服务熔断器的健康状态数据的界面展示功能 , Hystrix Turbine 组件提供了多个服务的熔断器的健康状态数据的界面展示功能。
(3 )负载均衡组件 Ribbon
Ribbon 是一个负载均衡组件,它通常和 Eureka、 Zuul、 RestTemplate、 Feign 配合使用。 Ribbon 和 Zuul 配合,很容易做到负载均衡,将请求根据负载均衡策略分配到不同的服务实例 中。 Ribbon 和I RestTemplate、 Feign 配合,在消费服务时能够做到负载均衡。
(4)路由网关 Zuul
路由网关Zuul 有智能路由和过滤的功能。内部服务的 API 接口通过Zuul 网关统一对外暴露, 内部服务的 API 接口不直接暴露,防止了内部服务敏感信息对外暴露。在默认的情况下, Zuul 和Ribbon 相结合,能够做到负载均衡、 智能路由。 Zuul 的过滤功能是通过拦截请求来实现的, 可以 对一些用户的角色和权限进行判断,起到安全验证的作用, 同时也可以用于输山实时的请求曰志。 上述的 4 个组件都来自于 Netflix 的公司 , 统一称为 Spring Cloud Netflix。
( 5) Spring Cloud Config
Spring Cloud Config 组件提供了配置文件统一管理的功能。Spring Cloud Config 包括 Server 端和 Client 端, Server 端读取本地仓库或者远程仓库的配置文件,所有的 Client 向 Server 读 取配置信息,从而达到配置文件统一管理的目的。通常情况下, Spring Cloud Config 和 Spring Cloud Bus 相互配合刷新指定 Client 或所有 Client 的配置文件。
( 6) Spring Cloud Security
Spring Cloud Security 是对 Spring Security 组件的封装, Spring Cloud Security 向服务单元 提供了用户验证和权限认证。一般来说,多带带在微服务系统中使用 Spring Cloud Security 是很 少见的, 一般它会配合 Spring Security 0Auth2 组件一起使用,通过搭建授权服务,验证 Token 或者 JWT 这种形式对整个微服务系统进行安全验证。
( 7) Spring Cloud Sleuth
Spring Cloud Sleuth 是一个分布式链路追踪组件,它封装了 Dapper、 Zipkin 和 Kibana 等组 件,通过它可以知道服务之间的相互依赖关系,并实时观察链路的调用情况。
( 8) Spring Cloud Stream
Spring Cloud Stream 是 Spring Cloud 框架的数据流操作包,可以封装 RabbitMq、ActiveMq、 Kafka、 Redis 等消息组件, 利用 Spring Cloud Stream 可以实现消息的接收和发送。

2.2.3 项目一览表

Spring Cloud Config:服务配置中心,将所有的服务的配置文件放到本地仓库或者远程仓库,配置中心负责读取仓库的配置文件,其他服务向配置中心读取配置。 Spring Cloud Config 使得服务的配置统一管理,并可以在不人为重启服务的情况下进行配置 文件的刷新。

Spring Cloud Netflix:它是通过包装了 Netflix 公司的微服务组件实现的,也是 Spring Cloud核心的核心组件,包括 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 是 SpringXD的替 代品,也是一个混合计算的模型,可以通过命令行的方式操作数据流。

Spring Cloud Security: 安全模块组件,是对 Spring Security 的封装,通常配合 0Auth2使用来保护微服务系统的安全。 口 Spring Cloud Consul:该组件是 Spring Cloud 对 Consul的封装,和 Eureka 类似,它是 另一个服务注册和发现组件。

Spring Cloud Zookeeper: 该组件是 Spring Cloud对Zookeeper 的封装,和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 云平台连接到后端。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71207.html

相关文章

  • 深入理解Spring Cloud与微服务构建【一】 - 1.4 微服务的设计原则与Spring Cl

    摘要:微服务的设计原则软件设计每一个版本都在变化,所以软件设计应该是渐进式发展。在微服务设计时,一定要考虑清楚这三个难题,从而选择合适的框架。目前比较流行的微服务框架有社区的公司的等。微服务应该具备的功能。 微服务的设计原则 软件设计每一个版本都在变化,所以软件设计应该是渐进式发展。 软件从一开始就不应该被设计成微服务架构,微服务架构固然有优势,但是它需要更多的资源,包括服务器资源、技术人员...

    ningwang 评论0 收藏0
  • 深入理解Spring Cloud与微服务构建【一】 - 1.3 微服务的不足

    摘要:微服务的复杂度框架知识服务于服务通信服务与服务之间相互依赖。服务的部署可选用。指服务的可用性。微服务系统通常是一个系统,即同时满足了可用性和分区容错。两阶段提交,将事务分成两部分能够大大提高分布式事务成功的概率。 主要体现在如下方面。 微服务的复杂度(框架知识、服务于服务通信、服务与服务之间相互依赖)。 分布式事务(重点)。 服务的划分(业务场景划分边界,最好无耦合,都能单独运行和替...

    bawn 评论0 收藏0
  • 深入理解Spring Cloud与微服务构建】 - 2.1 微服务应该具备的功能

    摘要:口服务的负载均衡。服务的注册与发现接口管理服务注册是指向服务注册中心注册一个服务实例,服务提供者将自己的服务信息如服务名地址等告知服务注册中心。服务注册中心会提供服务的健康检查方案,检查被注册的服务是否可用。服务降级的功能。 微服务具有以下的特点。 口 按照业务来划分服务,单个服务代码量小,业务单一,易于维护。 口 每个微服务都有自己独立的基础组件,例如数据库、 缓存等,且运行在独立...

    starsfun 评论0 收藏0
  • 深入理解Spring Cloud与微服务构建【一】 - 1.1体架构及其存在的不足

    摘要:单体架构简介经典的层模型,即表示层业务逻辑层和数据访问层。口数据访问层用于操作数据库,用户在表示层会产生大量的数据,通过数据访问层对数据库进行读写操作。 1.1.1 单体架构简介 经典的 3 层模型,即表示层、业务逻辑层和数据访问层。 口 表示层: 用于直接和用户交互,也称为交互层,通常是网页、 UI 等。 口 业务逻辑层:即业务逻辑处理层,例如用户输入的信息要经过业务逻辑层的处理...

    My_Oh_My 评论0 收藏0
  • 深入理解Spring Cloud与微服务构建【一】 - 1.2微服务

    摘要:熔断机制为了防止雪崩效应事件的发生,分布式系统采用了熔断机制。为了解决这一难题,微服务架构引入了熔断机制。由于微服务系统是分布式系统,服务与服务之间没有任何的祸合。 1.2.1 什么是微服务 按业务划分为一个独立运行的程序,即服务单元。 服务之间通过 HTTP 协议相互通信。 自动化部署。 可以用不同的编程语言。 可以用不同的存储技术。 服务集中化管理。 微服务是一个分布式系统。 ...

    AlexTuan 评论0 收藏0

发表评论

0条评论

Rocko

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<