SpringCloud入门学习(Java分布式基础)

依然范特西╮ 提交于 2020-07-24 04:56:59

你好我是辰兮,很高兴你能来阅读,本篇文章是关于SpringCloud分布式微服务框架的学习,初识SpringCloud接下来会整理更多相关知识,分享获取新知,大家一起进步。



一、Spring Cloud简介

Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心,以及Cloud Foundry等托管平台。


Spring Cloud是一个基于Spring Boot实现的云原生应用开发工具,它为基于JVM的云原生应用开发中涉及的配置管理、服务发现、熔断器、智能路由、微代理、控制总线、分布式会话和集群状态管理等操作提供了一种简单的开发方式。

  • ①首先,尽管Spring Cloud带有“Cloud”这个单词,但它并不是云计算解决方案,而是在SpringBoot基础之上构建的,用于快速构建分布式系统的通用模式的工具集。
  • ②其次,使用Spring Cloud开发的应用程序非常适合在Docker和PaaS(比如Pivotal Cloud Foundry)上部署,所以又叫做云原生应用(Cloud Native Application)。云原生可以简单地理解为面向云环境的软件架构。

特性 Spring Cloud的核心功能:

Spring Cloud专注于提供良好的开箱即用经验的典型用例和可扩展性机制覆盖。

  • 分布式/版本化配置
  • 服务注册和发现
  • 路由
  • service - to - service调用
  • 负载均衡
  • 断路器
  • 分布式消息传递

二、Spring Cloud核心子项目

Spring Cloud Netflix:核心组件,可以对多个Netflix OSS开源套件进行整合,包括以下几个组件:

  • Eureka:服务治理组件,包含服务注册与发现
  • Hystrix:容错管理组件,实现了熔断器
  • Ribbon:客户端负载均衡的服务调用组件
  • Feign:基于Ribbon和Hystrix的声明式服务调用组件
  • Zuul:网关组件,提供智能路由、访问过滤等功能
  • Archaius:外部化配置组件

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

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

Spring Cloud Security:基于spring security的安全工具包,为我们的应用程序添加安全控制。

Spring Cloud Consul :封装了Consul操作,Consul是一个服务发现与配置工具(与Eureka作用类似),与Docker容器可以无缝集成。

在这里插入图片描述

通过这张图,我们来了解一下各组件配置使用运行流程:

  • 1、请求统一通过API网关(Zuul)来访问内部服务.
  • 2、网关接收到请求后,从注册中心(Eureka)获取可用服务
  • 3、由Ribbon进行均衡负载后,分发到后端具体实例
  • 4、微服务之间通过Feign进行通信处理业务
  • 5、Hystrix负责处理服务超时熔断
  • 6、Turbine监控服务间的调用和熔断相关指标

三、Spring Cloud面试常考

(1)请说说什么是 spring cloud?

spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。

(2)spring cloud 断路器的作用是什么?

在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个错误响应,而不是长时间的等待。这样就不会使得线程因调用故障服务被长时间占用不释放,避免了故障在分布式系统中的蔓延。

(3)spring cloud 的核心组件有哪些?

  • Eureka:服务注册于发现。
  • Feign:基于动态代理机制,根据注解和选择的机器,拼接请求 url 地址,发起请求。
  • Ribbon:实现负载均衡,从一个服务的多台机器中选择一台
  • Hystrix:提供线程池,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题。
  • Zuul:网关管理,由 Zuul 网关转发请求给对应的服务。

在这里插入图片描述
(4)未完待续


后续继续跟新相关知识…


The best investment is to invest in yourself

在这里插入图片描述

2020.06.16 记录辰兮的第83篇博客

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!