zoukankan      html  css  js  c++  java
  • Spring Cloud学习(一)

    Spring Cloud是什么?

    Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

    Spring Cloud 与 微服务

    微服务的概念起源于: http://www.cnblogs.com/liuning8023/p/4493156.html(英文: https://martinfowler.com/articles/microservices.html)

    微服务架构模式的目的是将大型的,复杂的,长期运行的应用程序构建为一组相互配合的服务,每个服务都可以很容易进行局部改良.微服务的意思是每个服务应该足够小,小是指业务逻辑上的小.微服务的形象表示:

    micro

    • X轴: 水平扩展, 即在负载均衡服务器后增加多个运行实例
    • Z轴: 数据库的扩展, 即分库分表
    • Y轴: 功能分解, 即将不同职能的模块划分成不同的服务

    Spring Cloud技术概览

    Spring Cloud

    主要是下面内容:

    • 服务治理
    • 分布式链路监控
    • 消息组件
    • 配置中心
    • 安全控制
    • 命令行工具
    • 集群工具

    每个模块又是由不同组件结合来解决,其实学习Spring Cloud就是学会Spring Boot整合这些组件,学会使用,深入理解就好.

    Eureka

    Eureka是Netflix开源的一款提供服务注册和发现的产品,提供了完整的Service Registry 和 Service Discovery实现, 是Spring Cloud体系中最重要最核心的组件之一. Eureka相当于图书馆管理员,添加书需要到我这说一下,取书也得到我这报备.所以说Eureka在生产环境中一般是集群,至少两个,否则Eureka一旦挂掉将会影响整个服务.

    Eureka就自动具有注册中心,负载均衡,故障转移的功能.

    Hystrix

    熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方节点,从而对延迟和故障提供更强大的容错能力.也就是微服务中多个服务层调用,基础服务的故障可能会导致级联故障,造成整个系统不可用,就是服务血崩效应,Hystrix就是在这种场景下来做故障隔离,Hystrix 会在某个服务连续调用 N 次不响应的情况下,立即通知调用端调用失败,避免调用端持续等待而影响了整体服务。Hystrix 间隔时间会再次检查此服务,如果服务恢复将继续提供服务。

    服务雪崩效应是一种因"服务提供者"不可用导致"服务消费者"的不可用,并且将不可用逐渐放大的过程.

    zuul

    zuul路由也是微服务架构不可或缺的一部分,提供动态路由,监控,弹性,安全等的边缘服务.具体作用就是服务转发,接受并转发所有内外部的客户端调用,使用 Zuul 可以作为资源的统一访问入口. zuul相当于门卫,对请求进行一些校验等.

    Spring Cloud Config

    配置中心,把配置文件放在远程服务器,集中化管理集群配置,支持本地存储,git以及svn.

    这个组件是解决分布式系统的配置管理方案,包含了client和server两个部分,Server 提供配置文件的存储、以接口的形式将配置文件的内容提供出去,Client 通过接口获取数据、并依据此数据初始化自己的应用。

    当所有配置存储在配置中心时,配置中心也成为一个很重要的组件,所以一般也建议做集群,支持配置中心高可用.

    Spring Cloud Bus

    事件,消息总线,用于在集群中传播状态变化,可与Spring Cloud Config联合支持热部署,也就是改变配置文件提交到版本库时,会自动触发对应实例的Refresh.

    Spring Cloud Sleuth

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

    还有更多的组件,使用的时候再说.


    组件的配套使用

    组件

    • Eureka负责服务的注册和发现,很好将各个服务连接起来
    • Hystrix负责监控服务之间的调用情况,连续多次失败进行熔断保护
    • Hystrix dashboard,Turvine负责监控Hystrix的熔断情况,给予图形化展示(可以理解为图形化工具)
    • Spring Cloud Config提供统一的配置中心服务
    • 配置文件发生改变时,Spring Cloud Bus负责通知各个服务去获取最新的配置信息(实现热部署)
    • 所有对外的请求和服务都通过zuul进行转到,起到API网关的作用
    • sleuth + Zipkin将所有请求数据记录下来,方便进行后续分析.

    参考:纯洁的微笑(http://www.ityouknow.com/springcloud/2017/05/01/simple-springcloud.html) 和 Wind MT(https://windmt.com/2018/04/14/spring-cloud-0-microservices/)

  • 相关阅读:
    构造函数创建对象和Object.create()实现继承
    DIV伸缩盒子box
    阿里巴巴面试题
    在字符串上添加一些方法,让字符串具有新添加方法的功能
    JQuery常用函数及功能小结--转载
    滚动公告,永远只显示一条
    JS自定义属性兼容
    手机端touchstart,touchmove,touchend事件,优化用户划入某个可以点击LI的效果
    图片预加载问题
    多联动导航
  • 原文地址:https://www.cnblogs.com/wadmwz/p/10516458.html
Copyright © 2011-2022 走看看