简谈springCloud框架

简谈springCloud框架

    • springCloud框架
      • springCloud框架的常用组件
      • springCloud框架的优缺点
      • springCloud与dubbo对比
      • springCloud框架原理

springCloud框架

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

springCloud框架的常用组件

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

springCloud框架的优缺点

其主要优点有:

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

主要缺点有:

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

springCloud与dubbo对比

Dubbo 只是实现了服务治理,而 Spring Cloud 实现了微服务架构的方方面面,服务治理只是其中的一个方面。下面通过一张图对其进行比较:
简谈springCloud框架_第1张图片
二者区别总结:

  1. 可以看出,Spring Cloud 比较全面,而 Dubbo 由于只实现了服务治理,需要集成其他模块,需要单独引入,增加了学习成本和集成成本。
  2. Spring Cloud拥有很多的项目模块,包含微服务的方方面面,Dubbo是个十分优秀的服务治理和服务调用框架,但缺少了很多的功能模块,例如网关,链路追踪等。
  3. 开发风格上,Dubbo倾向于xml配置方式,而Spring Cloud基于Spring Boot,它采用基于注解和JavaBean配置方式的敏捷开发。
  4. 通信方式上Spring Cloud大多数基于HTTP Restful风格,服务与服务间完全耦合,因此服务无关乎语言和平台。Dubbo采用远程调用方式,对接口平台和编程语言有强依赖性。
  5. Dubbo和Spring Cloud各有优缺点,Dubbo更易上手,也非常成熟和稳定,Spring Cloud服务框架严格准守者 Martin Fowler 提出的微服务规范,社区活跃,未来很可能成为微服务架构的标准。

springCloud框架原理

想继续深入了解springCloud框架原理请戳这里

你可能感兴趣的:(java,spring,docker)