Spring Cloud 简单了解下

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zyjcxc/article/details/82118712

最近项目一直很忙,没有时间总结一些技术上的东西。正好项目用的是spring cloud架构,了解了一些的spring cloud方面的知识,闲时简单分享分享。

spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解。

spring cloud架 构

spring cloud组件

Spring Cloud的核心功能:

  • 分布式/版本化配置

  • 服务注册和发现

  • 路由

  • 服务和服务之间的调用

  • 负载均衡

  • 断路器

  • 分布式消息传递

各组件配置使用运行流程:

1、请求统一通过API网关(Zuul)来访问内部服务.

2、网关接收到请求后,从注册中心(Eureka)获取可用服务

3、由Ribbon进行均衡负载后,分发到后端具体实例

4、微服务之间通过Feign进行通信处理业务

5、Hystrix负责处理服务超时熔断

6、Turbine监控服务间的调用和熔断相关指标

SpringCloud子项目介绍

  • Spring Cloud Config:配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion。
  • Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
  • Spring Cloud Netflix:针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
  • Netflix Eureka:云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移。
  • Netflix Hystrix:容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
  • Netflix Zuul:边缘服务工具,是提供动态路由,监控,弹性,安全等的边缘服务。
  • Netflix Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。
  • Spring Cloud for Cloud Foundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。
  • Spring Cloud Sleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作。
  • Spring Cloud Data Flow:大数据操作工具,通过命令行方式操作数据流。
  • Spring Cloud Security:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2。
  • Spring Cloud Consul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。
  • Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现。
  • Spring Cloud Stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。
  • Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。
  • *

和Spring boot 是什么关系

Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot来实现,可以不基于Spring boot吗?不可以。
Spring boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring boot,属于依赖的关系。

spring -> spring booot > spring cloud 这样的关系。

Spring Cloud的优势

微服务的框架那么多比如:dubbo、Kubernetes,为什么就要使用Spring Cloud的呢?

产出于spring大家族,spring在企业级开发框架中无人能敌,来头很大,可以保证后续的更新、完善。比如dubbo现在就差不多死了
有spring Boot 这个独立干将可以省很多事,大大小小的活spring boot都搞的挺不错。
作为一个微服务治理的大家伙,考虑的很全面,几乎服务治理的方方面面都考虑到了,方便开发开箱即用。
Spring Cloud 活跃度很高,教程很丰富,遇到问题很容易找到解决方案
轻轻松松几行代码就完成了熔断、均衡负责、服务中心的各种平台功能
Spring Cloud 也有一个缺点,只能使用Java开发,不适合小型独立的项目。

猜你喜欢

转载自blog.csdn.net/zyjcxc/article/details/82118712