06 Spring Cloud 概述

这是我参与8月更文挑战的第8天,活动详情查看:8月更文挑战编程

1. 简介

Spring Cloud基于Spring Boot,是微服务架构思想的一个具体实现,它为开发人员提供了一些快速构建分布式系统中常见模式的工具,如配置管理、服务发现、熔断器、智能路由、微代理、控制总线等。Spring Cloud的底层基于Spring Boot框架,它不重复造轮子,而是将一些第三方实现的微服务应用模块集成。
Spring Cloud是一系列有序框架的集合,其中经常使用的子项目以下:服务器

  • Spring Cloud Config

经过SVN、Git等仓库使配置集中化存储,配置资源能够直接映射到Spring Enviroment中。markdown

  • pring Cloud Netflix

与Netflix开发的各类组件集成,包括服务注册与发现、熔断器、服务网关、Rest客户端及负载均衡器等。架构

  • Spring Cloud Bus

将服务、服务实例与分布式消息连接在一块儿的事件总线;用于在进群中传播状态变化;和Spring Cloud Config配合,能够实现配置的动态刷新。负载均衡

  • Spring Cloud Consul

进行Spring Cloud中的服务注册与发现配置管理。框架

  • Spring Cloud Security

为Zuul代理中的负载平衡OAuth2 Rest客户端和身份验证中继提供支持。分布式

  • Spring Cloud Sleuth

用于Spring Cloud 应用程序的分布式跟踪,兼容Zipkin、Htrace和基于日志(例如ELK)的跟踪。函数

  • Spring Cloud Data Flow

一种可以用于如今进行时并能够组合微服务应用程序的云本地编排服务。易于使用的DSL、拖放式GUI和REST-API共同简化了基于微服务的数据管道的总体编排。微服务

  • Spring Cloud Stream

轻量级事件驱动的微服务框架,可以快速构建可链接到外部系统的应用程序,用于在Spring Boot应用程序之间使用Apache Kafka或RabbitMQ发送和接收消息。工具

  • Spring Cloud Task

一种短暂的微服务框架,用于快速构建执行有限数据处理的应用程序,它用于向Spring Boot应用程序中添加功能性和非功能性的简单声明。

  • Spring Cloud Gateway

一款基于project Reactor的智能可编程路由器。因为Zuul2.0版本的开发常常跳票,因此Spring官方开发了路由网关以支持Spring Boot2.0及新版Spring Cloud。

  • Spring Cloud OpenFeign

基于Netflix Feign,是一个声明式的HTTP客户端,能够轻松实现服务间接口调用。

  • Spring Cloud Function

经过函数促进业务逻辑的实现,它支持无服务器商之间的统一编程模型以及独立运行(本地或PaaS)。

以上项目可根据实际状况选择一些适合的组件集成到应用中。

2. 优缺点

优势

  • 集大成者:包含了微服务架构的方方面面
  • 约定优于配置:基于注解,没有配置文件
  • 轻量级组件:整合的组件大多比较轻量,且都是各自领域的佼佼者。
  • 开发简便:对组件进行了大量封装,从而简化了开发。
  • 开发灵活:组件都是解耦的,开发人员能够灵活按需选择组件。

缺点

  • 项目结构复杂:每个组件或者每个服务都须要建立一个项目。
  • 部署门槛高:须要配合Docker等容器技术进行集群部署。而要想深刻了解Docker,学习成本比较高。

3. 现状

大势所趋。

相关文章
相关标签/搜索