zoukankan      html  css  js  c++  java
  • spring cloud之路(1)

    1.各个功能 springcloud                   

    注册中心                   Eureka
    负载均衡                   Ribbon
    路由网关                   Zuul
    断路器                    Hystrix
    分布式配置                  config
    服务调用跟踪                 sleuth
    日志输出                   elk   
    认证集成                   oauth2
    消息总线                   Bus
    批量任务                   Task
         

    ---------------------------------------------------------------------------

    2. Eureka

    Eureka包含两个组件:Eureka Server和Eureka Client。
    Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
    Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载均衡器。
    在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。
    Eureka Server之间通过复制的方式完成数据的同步,Eureka还提供了客户端缓存机制,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。综上,Eureka通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。
    ----------------------------------------------------------------------------------------

    3. 断路器 Hystrix

    是什么?

    在一个分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,如何能够保证在一个依赖出问题的情况下,不会导致整体服务失败,这个就是Hystrix需要做的事情。Hystrix提供了熔断、隔离、Fallback、cache、监控等功能,能够在一个、或多个依赖同时出现问题时保证系统依然可用。

    ***熔断是什么?

    熔断就是切断项目对指定服务的调用

    ***Fallback是什么?

    Fallback相当于是降级操作. 对于查询操作, 我们可以实现一个fallback方法, 当请求后端服务出现异常的时候, 可以使用fallback方法返回的值. fallback方法的返回值一般是设置的默认值或者来自缓存.通知后面的请求告知这服务暂时不可用了

    为什么要做线程隔离

    比如我们现在有3个业务调用分别是查询订单、查询商品、查询用户,且这三个业务请求都是依赖第三方服务-订单服务、商品服务、用户服务。三个服务均是通过RPC调用。当查询订单服务,假如线程阻塞了,这个时候后续有大量的查询订单请求过来,那么容器中的线程数量则会持续增加直致CPU资源耗尽到100%,整个服务对外不可用,集群环境下就是雪崩。如下图

     

    订单服务不可用.png
    订单服务不可用.png

    整个tomcat容器不可用.png
    整个tomcat容器不可用.png
     
    hystrix隔离模式目前有两种方式:信号量模式和线程池模式

    -----------------------------------------------------------------------------

    3. elk 是什么?

    ELK 是elastic公司提供的一套完整的日志收集、展示解决方案,是三个产品的首字母缩写,分别是ElasticSearch、Logstash 和 Kibana。

    ElasticSearch简称ES,它是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。

    Logstash是一个具有实时传输能力的数据收集引擎,用来进行数据收集(如:读取文本文件)、解析,并将数据发送给ES。

    Kibana为 Elasticsearch 提供了分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度表格、图形




  • 相关阅读:
    iOS面试题6.30总结
    关于外挂
    webstorm快捷方式
    HTML注释的一些规范
    认识Python
    正体复本术解决容易疲劳、不能持续集中精力工作-海淀区非物质文化遗产:#正体复本术#
    皮肤发痒的观察与思考
    win10不错的快捷键
    项目属性的target platform和target platform version到底是什么(vs2015开发windows驱动小记)
    玩Web虎-运行时受保护文件不可复制
  • 原文地址:https://www.cnblogs.com/mm163/p/10686854.html
Copyright © 2011-2022 走看看