Spring Cloud 初认识

Spring Cloud是一个继承了众多开源的框架,其利用了Springboot开发的便利性来实现分布式服务功能,是一套开放、易部署、易维护的分布式开发工具包,而且有成熟的社区且社区活跃度很高。Spring Cloud从设计之初就考虑了绝大多数互联网公司架构演化所需的功能,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。

Spring Cloud相关组件:

Eureak
Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现。也是Spring Cloud体系中最重要最核心的组件之一。 
用大白话讲,Eureka就是一个服务中心,将所有的可以提供的服务都注册到它这里来管理,其它各调用者需要的时候去注册中心获取,然后再进行调用,避免了服务之间的直接调用,方便后续的水平扩展、故障转移等。

作为服务中心这么重要的组件一但挂掉将会影响全部服务,因此需要搭建Eureka集群来保持高可用性,生产中建议最少两台。 
随着系统的流量不断增加,需要根据情况来扩展某个服务,Eureka内部已经提供均衡负载的功能,只需要增加相应的服务端实例既可。 
那么在系统的运行期间某个实例挂了怎么办?Eureka内容有一个心跳检测机制,如果某个实例在规定的时间内没有进行通讯则会自动被剔除掉,避免了某个实例挂掉而影响服务。 
因此使用了Eureka就自动具有了注册中心、负载均衡、故障转移的功能。

Hystrix  

Hystrix会在某个服务连续调用N次不响应的情况下,立即通知调用端调用失败,避免调用端持续等待而影响了整体服务。Hystrix间隔时间会再次检查此服务,如果服务恢复将继续提供服务。 
Hystrix Dashboard和Turbine 
当熔断发生的时候需要迅速的响应来解决问题,避免故障进一步扩散,那么对熔断的监控就变得非常重要。 
熔断的监控现在有两款工具:Hystrix-dashboard和Turbine 
Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。 
但是只使用Hystrix Dashboard的话, 你只能看到单个应用内的服务信息, 这明显不够。 
我们需要一个工具能让我们汇总系统内多个服务的数据并显示到Hystrix Dashboard上, 这个工具就是Turbine

Spring Cloud Config

Spring Cloud Config是一个解决分布式系统的配置管理方案。它包含了Client和Server两个部分,Server提供配置文件的存储、以接口的形式将配置文件的内容提供出去,Client通过接口获取数据、并依据此数据初始化自己的应用。 
其实就是Server端将所有的配置文件服务化,需要配置文件的服务实例去Config Server获取对应的数据。将所有的配置文件统一整理,避免了配置文件碎片化。

如果服务运行期间改变配置文件,服务是不会得到最新的配置信息,需要解决这个问题就需要引入Refresh。它可以在服务的运行期间重新加载配置文件。 
当所有的配置文件都存储在配置中心的时候,配置中心就成为了一个非常重要的组件。

如果配置中心出现问题将会导致灾难性的后果,因此在生产中建议对配置中心做集群,来支持配置中心高可用性。

Spring Cloud Bus

Spring Cloud Bus 通过轻量消息代理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其它的消息指令中。 
Spring Cloud Bus 的一个核心思想是通过分布式的启动器对 Spring Boot 应用进行扩展,也可以用来建立一个或多个应用之间的通信频道。目前唯一实现的方式是用 AMQP 消息代理作为通道。 
Spring Cloud Bus 是轻量级的通讯组件,也可以用在其它类似的场景中。

Spring Cloud Zuul

Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器。

Spring Cloud Zuul路由是微服务架构中不可或缺的一部分,提供动态路由,监控,弹性,安全等的边缘服务。 
它的具体作用就是服务转发,接收并转发所有内外部的客户端调用。使用Zuul可以作为资源的统一访问入口,同时也可以在网关做一些权限校验等类似的功能。

Spring Cloud Sleuth

Spring Cloud Sleuth为服务之间调用提供链路追踪。通过Sleuth可以很清楚的了解到一个服务请求经过了哪些服务,每个服务处理花费了多长时间。从而让我们可以很方便的理清各微服务间的调用关系。

Spring Cloud各组件配合工作:

Eureka负责服务的注册与发现,很好将各服务连接起来 
Hystrix 负责监控服务之间的调用情况,连续多次失败进行熔断保护。 
Hystrix dashboard,Turbine 负责监控 Hystrix的熔断情况,并给予图形化的展示 
Spring Cloud Config 提供了统一的配置中心服务 
当配置文件发生变化的时候,Spring Cloud Bus 负责通知各服务去获取最新的配置信息 
所有对外的请求和服务,我们都通过Zuul来进行转发,起到API网关的作用 
最后我们使用Sleuth+Zipkin将所有的请求数据记录下来,方便我们进行后续分析

原文地址:https://www.cnblogs.com/kingsonfu/p/8658770.html

时间: 2024-10-16 14:43:44

Spring Cloud 初认识的相关文章

spring cloud 初体验

spring cloud分为注册端.客户端以及消费端 初体验的理解就是: 注册端就是将之前所有的应用在这边进行注册,然后给每个应用都生成自己的标识,这些应用就是来自于客户端,消费端则通过调用注册端(有点数据中心的概念)然后去调用客户端各个的应用. 1.注册端代码: 直接创建maven项目: pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven

Spring Cloud Gateway初体验

前段时间项目上打算使用gateway替换掉zuul1.0于是我简单的体验了一下. gateway是什么:Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式.这里需要注意一下gateway使用的netty+webflux实现,不要加入web依赖,需要加入webflux依赖. gatewa

Spring Cloud Alibaba 初体验(二) Nacos 服务注册与发现

一.服务注册 添加依赖: <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.0.RELEASE</version> <type>pom.sha256</type> </depend

【转帖】如何利用Spring Cloud构建起自我修复型分布式系统

http://zhidao.baidu.com/link?url=tSKwdn3wr8KUxWMteHmneFtY0KoNZBMK9Xy-RimsdISA4h2neAecgHqggBipz2w6nXrvD3MmcPbiP5Q6ketfpz03gDLZRoh86p_eVa8bRpe 利用Netflix所打造的组件及各类大家熟知的工具,我们完全可以顺利应对由微服务以及分布式计算所带来的技术挑战. 在过去一年当中,微服务已经成为软件架构领域一个炙手可热的新名词,而且我们也能轻松举出由其带来的诸多比较优

总结Spring Cloud各个组件配套使用

我们从整体上来看一下Spring Cloud各个组件如何来配套使用: 从上图可以看出Spring Cloud各个组件相互配合,合作支持了一套完整的微服务架构. 其中Eureka负责服务的注册与发现,很好将各服务连接起来 Hystrix 负责监控服务之间的调用情况,连续多次失败进行熔断保护. Hystrix dashboard,Turbine 负责监控 Hystrix的熔断情况,并给予图形化的展示 Spring Cloud Config 提供了统一的配置中心服务 当配置文件发生变化的时候,Spri

Spring Cloud教程合集

Spring Cloud系列终于搞完啦! 这一系列是笔者的学习笔记,原书之前也给小伙伴们推荐过 <Spring Cloud微服务实战> 原书采用了较老的Brixton版,笔者在学习的过程中,采用了当时最新的Dalston.SR3版,可是Spring Cloud的更新还是太快了,还没学完,Dalston.SR3就已经不是最新版了,囧了个囧.不过大部分的API都还是没有什么差异的,可以直接用:另一方面,可能由于原书作者的疏忽,<Spring Cloud微服务实战>一书中有的案例按照作者

中小型公司对于Spring Cloud的选择与思考

在开始之前我们先介绍一下几个概念,什么是微服务,它的特点是什么? Spring Cloud都做了那些事情?他们之间又有什么联系? 技术背景 什么是微服务 微服务的概念源于2014年3月Martin Fowler所写的一篇文章"Microservices". 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API).

Spring Cloud各个组件的使用

我们从整体上来看一下Spring Cloud各个组件如何来配套使用:总结Spring Cloud各个组件配套使用 从上图可以看出Spring Cloud各个组件相互配合,合作支持了一套完整的微服务架构.其中Eureka负责服务的注册与发现,很好将各服务连接起来Hystrix 负责监控服务之间的调用情况,连续多次失败进行熔断保护.Hystrix dashboard,Turbine 负责监控 Hystrix的熔断情况,并给予图形化的展示Spring Cloud Config 提供了统一的配置中心服务

Spring Cloud各个组件的配套使用

我们从整体上来看一下Spring Cloud各个组件如何来配套使用: 从上图可以看出Spring Cloud各个组件相互配合,合作支持了一套完整的微服务架构. 其中Eureka负责服务的注册与发现,很好将各服务连接起来 Hystrix 负责监控服务之间的调用情况,连续多次失败进行熔断保护. Hystrix dashboard,Turbine 负责监控 Hystrix的熔断情况,并给予图形化的展示 Spring Cloud Config 提供了统一的配置中心服务 当配置文件发生变化的时候,Spri