搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 爱折腾的稻草 > [微服务]揭开SpringCloud的神秘面纱

[微服务]揭开SpringCloud的神秘面纱

爱折腾的稻草 2018-06-28
Spring Cloud中文社区

一、Spring Cloud是什么?

Spring Cloud是一个基于springBoot实现的微服务架构开发工具集。它为微服务开发中涉及的配置管理、服务治理、断路器
、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理的操作提供了一种简单的开发方式。
最重要的是, 跟spring boot框架一起使用的话,会让你开发微服务架构的云服务非常好的方便。

SpringBoot旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用微服务功能。

二、Spring Cloud特性

  • 约定优于配置

  • 开箱即用、快速启动

  • 适用于各种环境

  • 轻量级的组件

  • 组件支持丰富,功能齐全

三、Spring Cloud包含的子项目:

  • Spring Cloud Config:配置管理工具,支持使用Git存储配置内容,可以使用它实现应用配置的外部化存储,并支持客户端
    配置信息刷新、加密/解密配置内容等。

  • Spring Cloud Netflix:核心组件,对多个Netflix多个开源组件进行整合。

    • Eureka:服务治理组件,服务注册与发现的实现。

    • Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和故障提供强大的容错能力。

    • Ribbon:客户端负载均衡的服务调用组件。

    • Feign:基于Ribbon和Hystrix的声明式服务调用组件。

    • Zuul:服务网关组件,提供智能路由、访问过滤等功能。

    • Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。

    • Turbine:聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics情况。

  • Spring Cloud Bus:事件、消息总线,用于传播集群中的状态变化或事件,以触发后续的处理。

  • Spring Cloud Cluster:针对ZooKeeper、Redis、Hazelcast、Consul等选举算法和通用状态模式的实现。

  • Spring Cloud Consul:服务发现和配置管理工具。

  • Spring Cloud Stream:通过Redis、Rabbit或者Kafka实现的消费微服务,可以通过简单的声明式模型来发送和接收消息。

  • Spring Cloud AWS:用于简化整合Amazon Web Service组件。

  • Spring Cloud Security:安全工具包,提供在Zuul代理中对OAuth2客户端请求的中继器。

  • Spring Cloud Sleuth:日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案。

  • Spring Cloud ZooKeeper:基于ZooKeeper的服务发现与配置管理组件。

  • Spring Cloud Starters:Spring Boot式的启动项目,为Spring Cloud提供开箱即用的依赖管理。

  • Spring Cloud CLI:用于在Groovy中快速创建Spring Cloud应用的Spring Boot CLI插件。

  • Spring Cloud Data Flow:大数据操作工具,作为Spring XD的替代产品,它是一个混合计算模型,结合了流数据与批量数据的处理方式。

  • Spring Cloud Task:提供云端计划任务管理、任务调度。

四、Spring Boot是什么?

Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring引用。你也可以打包你的应用为jar并通过使用java -jar来运行你的Spring Web应用。
SpringBoot的主要优点:

  • 去除了大量的xml配置文件

  • 简化了复杂的依赖管理

  • 配合各种starter使用,基本上可以做到自动化配置(都有默认配置)

  • 开箱即用,提供各种默认配置来简化项目配置

  • 内嵌式容器简化Web项目,快速启动容器

Spring Boot的缺点:

  • 从原来的xml配置方式转换到Java配置方式变化有点大,不太适应。

  • 不适合做比较大型的项目,比较适合做微服务应用。

Spring Boot没有引入任何形式的代码生成,而是利用了Spring 4的条件化配置特性,以及Maven和Gradle提供的传递依赖解析,以此实现Spring应用程序上下文里的自动配置。

从本质上来说,Spring Boot是一个专注于框架的框架。Spring Boot就是对各种框架的整合,让他们集成在一起更加简单,简化了我们在集成过程中的模板化配置,
它做了那些没有它你自己也会去做的Spring Bean配置。你不用再写这些样板配置了,可以专注于应用程序的逻辑,这些才是应用程序独一无二的东西。

图注:爱折腾的稻草


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《[微服务]揭开SpringCloud的神秘面纱》的版权归原作者「爱折腾的稻草」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注爱折腾的稻草微信公众号

爱折腾的稻草微信公众号:GitShare

爱折腾的稻草

手机扫描上方二维码即可关注爱折腾的稻草微信公众号

爱折腾的稻草最新文章

精品公众号随机推荐