Spring Cloud理解

分类:知识要点 日期:2022-03-21 作者:yxy 浏览:2504

Spring Framework

spring 框架为现代基于 Java 的企业应用程序提供了一个全面的编程和配置模型——在任何类型的部署平台上。提供了IOC DI,最新提供 reactive/webflux 

Spring Boot

Spring Boot 可以轻松创建独立的、生产级的基于 Spring 的应用程序,您可以“直接运行”。
大多数 Spring Boot 应用程序需要最少的 Spring 配置,或者自动化配置。

Spring Data

Spring Data 的使命是为数据访问提供熟悉且一致的、基于 Spring 的编程模型,同时仍保留底层数据存储的特殊特征。它使使用数据访问技术、关系和非关系数据库、map-reduce框架和基于云的数据服务变得容易。包含Spring Data JDBC,Spring Data JPA,Spring Data Redis等,Spring Data Mybatis 是mybatis自己的实现的。

Spring Cloud

Spring Cloud 为开发者提供了工具来快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式 会话,集群状态)。 分布式系统的协调导致了样板模式,使用 Spring Cloud 开发人员可以快速建立实现这些模式的服务和应用程序。 它们在任何分布式环境中都能很好地工作,包括开发人员自己的笔记本电脑、裸机数据中心和 Cloud Foundry 等托管平台。
  • 分布式/版本化配置
  • 服务注册和发现
  • 路由
  • 服务到服务调用
  • 负载均衡
  • 断路器
  • 全局锁
  • 领导选举和集群状态
  • 分布式消息传递

Spring Cloud Consul

服务发现、分布式配置和控制总线。

Spring Cloud Gateway

用于在 Spring WebFlux 之上构建 API 网关。并为它们提供横切关注点,例如:安全性、监控/指标和弹性

Spring Cloud Bus

将分布式系统的节点与轻量级消息代理链接起来。 然后可以使用它来广播状态更改(例如配置更改)或其他管理指令。 项目中包含 AMQP 和 Kafka 代理实现。消息总线与mq集成,修改配置自动更新。

Spring Cloud Config

Spring Cloud Config 为分布式系统中的外部化配置提供服务器和客户端支持。使用配置服务器,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念与 Spring Environment 和 PropertySource 抽象映射相同,因此它们非常适合 Spring 应用程序,但可以用于以任何语言运行的任何应用程序。当应用程序通过部署管道从开发到测试再进入生产时,您可以管理这些环境之间的配置,并确保应用程序在迁移时具备运行所需的一切。服务器存储后端的默认实现使用 git,因此它可以轻松支持配置环境的标记版本,并且可以访问用于管理内容的各种工具。很容易添加替代实现并将它们插入到 Spring 配置中。

Spring Cloud Circuit Breaker

Spring Cloud 断路器提供了跨不同断路器实现的抽象。 它提供了在您的应用程序中使用的一致 API,让您开发人员可以选择最适合您的应用程序需求的断路器实现 ,alibaba哨兵 和netflix Hystrix也支持

Spring Cloud Alibaba

Alibaba middleware 五个中间件 Sentinel   Nacos  RocketMQ   Seata  DubboRPC  
这5个套件正在被大量使用
Sentinel 提供 分布式 限流,熔断,降级的特性,还有良好的控制台,特别是现在netflix Hystrix现在停止更新后
Nacos  可以作为服务发现、分布式配置替换掉 zuul ,以及springcloudconfig与mq 的配置刷新功能
Seata  AT事务提供了在分布式系统中全局事务支持(改进的二阶提交段协议),且性能相对较好(缺点也很明显),
RocketMQ 已经成为apache顶级项目,https://rocketmq.apache.org/docs/motivation/,非常高效的消息中间件
Apache Dubbo 国内最近的分布式的调用框架之一

Spring Cloud Netflix

Spring Cloud Netflix 四个套件Discovery (Eureka), Circuit Breaker (Hystrix), Intelligent Routing (Zuul) and Client Side Load Balancing (Ribbon).. 现在的问题Netflix停止更新,不过已经很厉害的

SpringCloud包括很多组件,例如Spring Cloud GCP,Spring Cloud Azure, Spring Cloud Amazon Web Services,Spring Cloud Zookeeper等 ,

分布式日志

zipkin SkyWalking 等

分布式系统使用组合

现在开发中主要使用的有

1,Spring Cloud Gateway 网关
2,Spring Cloud Alibaba Nacos 配置中心与注册中心
3,Spring Cloud Alibaba Setae 全局事务支持(订单系统,建议不使用)
4,Spring Cloud Alibaba Sentinel 限流,熔断,降级
5,Spring Cloud OpenFeign 远程调用工具
6,Spring Cloud Sleuth+ zipkin 调用链日志跟踪,在系统优化中很有必要

另外组件
spring Data mybatis 加上 mybatis plus (数据库操做)
spring Data redis (全局缓存 ,了解spring缓存注解优劣,了解缓存穿透问题,)
redission(全局锁的支持,对于方法幂等性的支持很有作用,了解redis lua脚本)
amqp(mq消息 ,了解 rabbitmq消息 以及 通过死信实现的定时消息,常用的有activemq,kafa)

分布式系统三大利器

  限流 缓存 排队

Spring Cloud 在线文档

https://spring.io/projects/spring-cloud

Spring Cloud pdf文档

https://docs.spring.io/spring-cloud/docs/current/reference/pdf/spring-cloud.pdf

Spring Cloud 项目搭建指南

使用maven 或者gradle 配置项目
https://start.spring.io/

评论 (已有 3 条评论)

    C 2023-07-03 23:11回复

    [email protected]

    C 2023-07-03 23:11回复

    [email protected]

    C 2023-07-03 23:11回复

    [email protected]

发表评论

昵称:  
邮箱:  
网址: