zoukankan      html  css  js  c++  java
  • 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将所有的请求数据记录下来,方便我们进行后续分析 

  • 相关阅读:
    Lucene基础排序算法改进
    大数据量的过滤 (用于爬虫,蜘蛛) Bloom Filter 布隆过滤器
    往空间,博客里添加音乐播放器
    汇编随笔
    一个女程序员的故事(酷壳陈皓)
    cmd 命令之删除整个文件夹
    亿度空间
    用wubi.exe安装ubuntu下载速度很慢怎么办?
    qtm第一次
    copy的妙用
  • 原文地址:https://www.cnblogs.com/kingsonfu/p/8658770.html
Copyright © 2011-2022 走看看