SpringCloud(一).大话SpringCloud

学习一个东西,首先要搞清楚这个东西是什么,有什么用,怎么用。最近会坚持写博客,将最近学习的SpringCloud的过程记录下来,很多东西往往看了一遍过一段时间就会遗忘,用博客记录下来是一个很好的方式,在整理的过程中才能查漏补缺,知道自己哪些地方掌握的不牢,哪些地方可能是之前学习没有想到的地方。

 一、什么是SpringCloud

在说SpringCloud之前,不得不提一下微服务,微服务是可以独立部署,水平扩张,独立访问(或者有单独的数据库)的服务单元。当一个单体系统越来越庞大时,带来的业务逻辑混乱,相互关联复杂等问题越来越凸显,而微服务则专注于单一的任务,通过微服务之间的相互调用实现业务联系,SpringCloud则是这些这些微服务的大管家,通过服务注册,集群,负载均衡,熔断机制,配置中心,消息总线,网关等来监控整个服务的运行。

SpringCloud是一系列有序框架的集合,通过SpringBoot简化了基础分布式系统的开发,如服务注册,集群,负载均衡,熔断机制,配置中心,消息总线,网关都可以通过SpringBoot一键启动和部署,SpringBoot专注于单体服务的开发,实现快速开发部署,SpringCloud则专注于全局管理,管理整个微服务的生态。最终给开发者一套简便,易于开发维护的分布式系统。

  二、SpringCloud组成

  SpringCloud由Spring Cloud Netflix(Eureka、Hystrix、Zuul..)、Spring Cloud Config、Spring Cloud Bus、Spring Cloud for Cloud Foundry、Spring Cloud Cluster、Spring Cloud Consul、Spring Cloud Security、Spring Cloud Sleuth、Spring Cloud Data Flow、Spring Cloud Stream、Spring Cloud Task、Spring Cloud Zookeeper、Spring Cloud Connectors、Spring Cloud Starters、Spring Cloud CLI这些组件组成,下面就给大家详细介绍下几个常见的

 1.Spring Cloud Netflix

核心组件,地位仅次于老大,是整个微服务的核心,老大的 各项服务都依赖于它。包括Eureka、Hystrix、Zuul等小弟。

Eureka(服务注册中心)

用于微服务的各项服务的注册与发现,所有的微服务都要到注册中心报道,同样想要调用任何服务也要通过服务注册中心调用。可以简化微服务之间的调用关系。

Hystrix(熔断器)

当某个微服务出现故障时,其他调用它的服务也会因为连续请求无响应,导致其他服务也出现故障,导致故障扩散到整个系统,导致服务出现雪崩效应,此时就需要熔断器,其作用旨在通过熔断机制控制服务和第三方库节点,对延迟和故障提供更强大的容错能力。当某个小弟无响应时,会让这个小弟下线让其他的小弟先顶上来,或者告诉你这个小弟挂掉,别在这傻傻的排队了。

Zuul(网关路由)

简化前端的请求逻辑,所有的请求都通过网关,由Zuul根据路由规则将请求转发到相应的微服务,用大白话解释就是个看大门的,想找我老大和下面的小弟先通过我再说。在这个过程中Zuul可以实现单点登录,路由转发,限流熔断,日志监控,安全认证,负载均衡这些基础功能。

2.Spring Cloud Config(配置中心)

Spring Cloud 由大量的子项目组成,每个项目都有自己的配置文件,在开发和维护时会造成遗忘等问题的出现,通过配置中心可以实现配置文件的统一管理,目前支持本地存储、GIT、SVN。

3.Spring Cloud Bus(事件、消息总线)

用于集群中传播状态变化(如配置状态改变),确保各微服务之间的消息通畅。

Spring Cloud for Cloud Foundry(一下都是来自纯洁的微笑的博客,这些我都没怎么用到,没学过)

Cloud Foundry是VMware推出的业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题

其实就是与CloudFoundry进行集成的一套解决方案,抱了Cloud Foundry的大腿。

Spring Cloud Cluster

Spring Cloud Cluster将取代Spring Integration。提供在分布式系统中的集群所需要的基础功能支持,如:选举、集群的状态一致性、全局锁、tokens等常见状态模式的抽象和实现。

如果把不同的帮派组织成统一的整体,Spring Cloud Cluster已经帮你提供了很多方便组织成统一的工具。

Spring Cloud Consul

Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对.

Spring Cloud Consul 封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。

其它小弟

Spring Cloud Security

基于spring security的安全工具包,为你的应用程序添加安全控制。这个小弟很牛鼻专门负责整个帮派的安全问题,设置不同的门派访问特定的资源,不能把秘籍葵花宝典泄漏了。

Spring Cloud Sleuth

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

Spring Cloud Data Flow

  • Data flow 是一个用于开发和执行大范围数据处理其模式包括ETL,批量运算和持续运算的统一编程模型和托管服务。
  • 对于在现代运行环境中可组合的微服务程序来说,Spring Cloud data flow是一个原生云可编配的服务。使用Spring Cloud data flow,开发者可以为像数据抽取,实时分析,和数据导入/导出这种常见用例创建和编配数据通道 (data pipelines)。
  • Spring Cloud data flow 是基于原生云对 spring XD的重新设计,该项目目标是简化大数据应用的开发。Spring XD 的流处理和批处理模块的重构分别是基于 Spring Boot的stream 和 task/batch 的微服务程序。这些程序现在都是自动部署单元而且他们原生的支持像 Cloud Foundry、Apache YARN、Apache Mesos和Kubernetes 等现代运行环境。
  • Spring Cloud data flow 为基于微服务的分布式流处理和批处理数据通道提供了一系列模型和最佳实践。

Spring Cloud Stream

Spring Cloud Stream是创建消息驱动微服务应用的框架。Spring Cloud Stream是基于Spring Boot创建,用来建立单独的/工业级spring应用,使用spring integration提供与消息代理之间的连接。数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。

一个业务会牵扯到多个任务,任务之间是通过事件触发的,这就是Spring Cloud stream要干的事了

Spring Cloud Task

Spring Cloud Task 主要解决短命微服务的任务管理,任务调度的工作,比如说某些定时任务晚上就跑一次,或者某项数据分析临时就跑几次。

Spring Cloud Zookeeper

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

操作Zookeeper的工具包,用于使用zookeeper方式的服务发现和配置管理,抱了Zookeeper的大腿。

Spring Cloud Connectors

Spring Cloud Connectors 简化了连接到服务的过程和从云平台获取操作的过程,有很强的扩展性,可以利用Spring Cloud Connectors来构建你自己的云平台。

便于云端应用程序在各种PaaS平台连接到后端,如:数据库和消息代理服务。

Spring Cloud Starters

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

Spring Cloud CLI

基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。

下一章将具体介绍SpringCloud的Eureka组件。

真正伤害你的,从来不是事情本身,而是你对事情的看法。没人有可以让你痛苦那么久,除非你自己愿意。    

原文地址:https://www.cnblogs.com/hs5201314tx/p/11494413.html

时间: 2024-08-30 15:58:26

SpringCloud(一).大话SpringCloud的相关文章

带你入门SpringCloud 之 通过SpringCloud Bus 自动更新配置

前言 在<带你入门SpringCloud统一配置 | SpringCloud Config>中通过 SpringCloud Config 完成了统一配置基础环境搭建,但是并没有实现配置修改自动更新的操作(GitHub 或Gitee 修改配置后,需要重启配置服务才能更新配置). 本文是<带你入门SpringCloud统一配置 | SpringCloud Config>的续篇,通过 SpringCloud Bus 完成配置修改自动更新的操作介绍. 阅读本文前需要你先移步<带你入门

SpringCloud学习系列-SpringCloud

SpringCloud是什么? SpringCloud=分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶 SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件. SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发

SpringCloud 进阶之SpringCloud

1. Eureka 服务注册与发现 Eureka 是一个基于REST的服务,用于服务的的注册与发现; Eureka采用C-S的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心; Eureka包含两个组件:Eureka Server 和 Eureka Client Eureka Server提供服务注册和发现; Eureka Client是一个java客户端; 1.1 三大角色 Eureka Server提供服务注册和发现; Service Provider服务提供方

如何学习SpringCloud?(SpringCloud模板)

前言 对于SpringCloud来说(下面简称SC),现在网上已经有很多教程写的非常详细,因为SC的组件特别多,虽然不是所有组件都需要用到,但是学习的时候我们都需要去学习和了解.所以我想如果再写把每一个组件再拖出来做整理感觉有点重复劳动了,而且说的也不可能比当前别人说的更加详细,所以就打算换一个方向来说说SC的学习.俗话说授人以鱼不如授人以渔.同时给出一个模板,方便后期查看学习(模板正在不断更新,如有不对的地方请提出建议,感激不尽). 模板地址:https://github.com/Linkin

【SpringCloud】(1)---SpringCloud入门篇

SpringCloud理解篇 一.微服务概述 1.什么是微服务 目前的微服务并没有一个统一的标准,一般是以业务来划分将传统的一站式应用,拆分成一个个的服务,彻底去耦合,一个微服务就是单功能业务,只做一件事. 与微服务相对的叫巨石 . 2.微服务与微服务架构 微服务是一种架构模式或者一种架构风格,提倡将单一应用程序划分成一组小的服务==独立部署==,服务之间相互配合.相互协调,每个服务运行于自己的==进程==中. 服务与服务间采用轻量级通讯,如HTTP的RESTful API等 避免统一的.集中式

【SpringCloud】(2)---SpringCloud入门篇

SpringCloud理解篇 一.微服务概述 1.什么是微服务 目前的微服务并没有一个统一的标准,一般是以业务来划分将传统的一站式应用,拆分成一个个的服务,彻底去耦合,一个微服务就是单功能业务,只做一件事. 与微服务相对的叫巨石 . 2.微服务与微服务架构 微服务是一种架构模式或者一种架构风格,提倡将单一应用程序划分成一组小的服务==独立部署==,服务之间相互配合.相互协调,每个服务运行于自己的==进程==中. 服务与服务间采用轻量级通讯,如HTTP的RESTful API等 避免统一的.集中式

SpringCloud 教程 之 SpringCloud概述

一.SpringCloud简介 Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,集群状态).分布式系统间的协作产生了一些样板规则,使用Spring Cloud开发人员可以快速构建实现这些模式的服务和应用程序.它们适用于任何分布式环境,包括开发人员自己的笔记本电脑,数据中心和Cloud Foundry等托管平台. 二.SpringCloud特点 Spring Clo

SpringCloud学习之一前置知识理解

前提知识+相关的说明 1. 目前我们学习到最后的微服务架构SpringCloud,到我这里基本人需要大家熟悉以前的学习内容和知识,也即我默认大家已经熟悉了 SpringMVC+Spring/SpringBoot+Mybatis+Maven+git-- 不再重复讲解, 2. 本次Cloud的讲解的方式,由于我们只有2.5天,大概21种技术之多,只能挑选最重要最常用的技能给大家分享,俗称Cloud技术的五大神兽 public classDept{ private Integer id; privat

SpringCloud:基础

SpringCloud:基础 SpringCloud 是微服务架构的一个实现框架,说他是一个框架更不如说他是一个生态,他包含了很多个技术,将这些技术组合起来形成我们的微服务架构应用. 1.SpringCloud vs Dubbo 最大区别:SpringCloud抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST方式. 严格来说,这两种方式各有优劣.虽然从一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生RPC带来的问题.而且REST相比RPC更为灵活,服务提供方和调用方