美文网首页
第一章 Spring Cloud 介绍

第一章 Spring Cloud 介绍

作者: 郭永峰IT教育工作室 | 来源:发表于2020-02-21 23:02 被阅读0次

参考资料地址:
官方文档:https://spring.io/projects/spring-cloud/
中文文档:https://www.springcloud.cc/


Spring Cloud 是什么

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

总之Spring Cloud就是用来做分布式系统的。

Spring Cloud的组件

Spring Cloud下面是有很多子项目,大致可分成两类,一类是对现有成熟框架”Spring Boot化”的封装和抽象,也是数量最多的项目;第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cloud Stream扮演的就是kafka, ActiveMQ这样的角色。对于我们想快速实践微服务的开发者来说,第一类子项目就已经足够使用

组件列表

  1. Spring Cloud Eureka
    Eureka 是Spring Cloud Netflix 微服务套件中的一部份,它是基于Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能

  2. Spring Cloud Ribbon
    Ribbon是一个基于HTTP和TCP的客户端负载均衡器

  3. Spring Cloud Hystrix
    断路由,主要是为了解决某个方法调用失败后,调用后备方法来替代失败的方法,以达到容错、阻止级联错误组件

  4. Spring Cloud Feign
    它是基于Netflix Feign实现,整合了Spring Cloud Ribbon 与 Spring Cloud Hystrix,除了提供两者的强大功能外,还提供一种声明式的Web服务客户端定义方式

  5. Spring Cloud Zuul
    Zuul是Netflix开源的微服务网关,可以和Eureka、Ribbon、Hystrix等组件配合使用,Spring Cloud对Zuul进行了整合与增强,Zuul默认使用的HTTP客户端是Apache HTTPClient,也可以使用RestClient或okhttp3.OkHttpClient。 Zuul的主要功能是路由转发和过滤器

  6. Spring Cloud Config
    将配置信息中央化保存, 配置Spring Cloud Bus可以实现动态修改配置文件

  7. Spring Cloud Bus
    Bus是分布式消息队列总线,是对Kafka, MQ的封装

  8. Spring Cloud Stream
    Stream是消息中间件组件,它集成了 kafka 和 rabbitmq

  9. Spring Cloud Sleuth
    sleuth其实是一个工具,它在整个分布式系统中能跟踪一个用户请求的过程(包括数据采集,数据传输,数据存储,数据分析,数据可视化),捕获这些跟踪数据,就能构建微服务的整个调用链的视图,这是调试和监控微服务的关键工具。

微服务

概念

所谓的微服务是SOA架构下的最终产物,该架构的设计目标是为了肢解业务,使得服务能够独立运行。微服务设计原则:1、各司其职 2、服务高可用和可扩展性。他是一种新型软件架构

微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。

微服务的优点

微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源。这是因为它们通过扩展组件来处理功能瓶颈问题。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个完整的应用程序的全新迭代。最终的结果是有更多的资源可以提供给其它任务。

微服务应用程序的另一个好处是,它们更快且更容易更新。当开发者对一个传统的单体应用程序进行变更时,他们必须做详细的QA测试,以确保变更不会影响其他特性或功能。但有了微服务,开发者可以更新应用程序的单个组件,而不会影响其他的部分。测试微服务应用程序仍然是必需的,但它更容易识别和隔离问题,从而加快开发速度并支持DevOps和持续应用程序开发。

第三个好处是,微服务架构有助于新兴的云服务,如事件驱动计算。类似AWS Lambda这样的功能让开发人员能够编写代码处于休眠状态,直到应用程序事件触发。事件处理时才需要使用计算资源,而企业只需要为每次事件,而不是固定数目的计算实例支付。

分布式

概念

将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务

image.png

上面:Service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问,业务A、B、C和D分别在不同的机器上。

而微服务的应用不一定是分散在多个服务器上,也可以是同一个服务器

微服务与分步式的关系

  • 将不同微服务分部在不同机器上,就是分布式系统-微服务
  • 将不同微服务分部在同一机器上,就是非分布式系统-微服务

相关文章

网友评论

      本文标题:第一章 Spring Cloud 介绍

      本文链接:https://www.haomeiwen.com/subject/tgccqhtx.html