SpringCloud简介初体验

什么是SpringCloud


简单来说,微服务是一种架构模型,就是把系统中的各个功能点都拆开为一个个的小应用然后单独部署,同时因为这些小应用多,所以需要一些办法来管理这些小应用。

Spring Cloud只是一个微服务框架的规范,注意,只是规范,并不是任何具体法人框架。主要大概有以下几种功能

  1. eureka(提供服务的注册和发现功能)
  2. ribbon(提供负载均衡功能)
  3. Feign(整合了ribbon和Hystrix,具有负载均衡和熔断限流等功能)
  4. Hystrix(提供了熔断限流,合并请求等功能)
  5. Zuul(提供了智能路由的功能)
  6. Hystrix Dashboard(提供了服务监控的功能,提供了数据监控和友好的图形化界面)
  7. Hystrix Turbine(Hystrix Turbine将每个服务Hystrix DashBoard数据进行了整合,也是监控系统的功能)
  8. Spring Cloud config(提供了统一配置的功能)
  9. Spring Cloud(提供了配置实时更新的功能,控制总线)
  10. ...

注意:需要注意的是这些组件并不是一体化的,也可以用NCOS或Zookeeper来替换eureka

目前主流并且恰好能够满足上面的需求,就是Spring Cloud Netflix,当然Spring Cloud的实现产品不止这一个,还有最近由阿里新起的Spring Cloud Alibaba等。

Spring Cloud和Spring boot的关系


其实它们之间并没有什么特殊的关系,只不过当下流行微服务,而实现一个服务最快的办法就是用Spring boot,仅此而已。

Spring Cloud和dubbo的关系


dubbo是阿里搞得一套框架,是基于RPC调用的,而Spring Netflix是基于HTTP的,所以效率上应该dubbo更快,但是dubbo的组件不是很齐全,它的很多功能比如服务注册于发现你需要借助于类似Zookeeper等组件才能实现,而Spring Cloud Netflix则是提供了一站式解决方案。

如何学习Spring Cloud

在此贴出以为大牛的Spring Cloud入门,真的通俗易懂。

https://www.fangzhipeng.com/spring-cloud.html

构建分布式系统不应该是复杂的,Spring Cloud对常见的分布式系统模式提供了简单易用的编程模型,帮助开发者构建弹性、可靠、协调的应用程序。Spring Cloud是在Spring Boot的基础上构建的,使开发者可以轻松入门并快速提供效率,SpringCloud为开发人员提供了快速构建分布式系统架构的工具,例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁定、领导选举、分布式会话、集群状态等。

SpringCloud子项目简介


Spring Cloud config

集中管理工具,分布式系统中统一的外部配置管理,默认使用Git来存储配置,可以支持客户端配置的刷新及加密、解密操作。

Spring Cloud Netflix

Netflix OSS开源组件集成,包括Eureka、Hystrix、Ribbon、Feign、Zuul等核心组件。

  • Eureka:服务治理组件,包括服务端的注册中心和客户端的服务发现机制。
  • Ribbon:负载均衡的服务调用组件,具有多种负载均衡调用策略。
  • Hystrix:服务容错组件,实现了断路器模式,为依赖服务的出错和延迟提供了容错能力。
  • Feign:基于Ribbon和Hystrix的声明式服务调动组件。
  • Zuul:API网关组件,对请求提供路由和过滤功能。

Spring Cloud Bus

用于传播集群状态变化的消息总线,使用轻量级消息代理链接分布式系统中的节点,可以用来动态刷新集群中的服务配置。

Spring Cloud Consul

基于Hashicorp Consul的服务治理组件。

Spring Cloud Security

安全工具包,对Zuul代理中的负载均衡OAuth2客户端及登录认证进行支持。

Spring Cloud Sleuth

Spring Cloud应用程序的分布式请求链路跟踪,支持使用Zipkin、Htrace和基于日志(例如ELK)的跟踪。

Spring Cloud Stream

轻量级事件驱动微服务框架,可以使用简单的声明式模型来发送及接收消息,主要实现为Apache Kafka及RabbitMQ。

Spring Cloud Task

用于快速构建短暂、有限数据处理任务的微服务框架,用于向应用中添加功能性和非功能性的特性。

Spring Cloud Zookeeper

基于Apache Zookeeper的服务治理组件。

Spring Cloud Gateway

API网关组件,对请求提供路由及过滤功能。

Spring Cloud OpenFeign

基于Ribbon和Hystrix的声明式服务调用组件,可以动态创建基于Spring MVC注解的接口实现用于服务调用,在SpringCloud 2.0中已经取代Feign成为了一等公民。

原文地址:https://www.cnblogs.com/MrAshin/p/12013644.html