zoukankan      html  css  js  c++  java
  • Spring Cloud 图解微服务 Sentinel Nacos Ribbon

    • 服务注册与发现:Nacos
    • 服务熔断限流:Sentinel
    • 服务通信调用:Feign
    • 配置中心:Nacos
    • 服务网关:Spring Cloud Gateway
    • 分布式事务:Seata
    • 消息队列:RocketMQ
    • 调用链监控:Sleuth+Zipkin

    Hystrix 替换成了 Sentinel,Hystrix 也停止了开发,这个时候 Spring Cloud Alibaba 中的 Sentinel 的优势就很明显了,Sentinel 支持多样化的流量控制,熔断降级等功能,完全可以替代 Hystrix。

    Ribbon和Nginx的区别

    Nginx是客户端所有请求统一交给Nginx,由Nginx进行实现负载均衡请求转发,属于服务器端负载均衡。既请求由Nginx服务器端进行转发。客户端负载均衡Ribbon,Ribbon是从Eureka注册中心服务器端上获取服务注册信息列表,缓存到本地,然后在本地实现轮询负载均衡策略。既在客户端实现负载均衡。

    应用场景的区别

    Nginx适合于服务器端实现负载均衡,比如:Tomcat,Ribbon适合与在微服务中RPC远程调用实现本地服务负载均衡,比如:Dubbo、Spring Cloud中都是采用本地负载均衡。

    Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避兔的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。Hystrix的出现就是为了解决雪崩效应。

    服务降级

    整体资源快不够了,忍痛将某些服务先关掉,待渡过难关,再开启回来。

    • 首先,如果你对某个接口定义了@FeignClient注解,Feign就会针对这个接口创建一个动态代理
    • 接着你要是调用那个接口,本质就是会调用 Feign创建的动态代理,这是核心中的核心
    • Feign的动态代理会根据你在接口上的@RequestMapping等注解,来动态构造出你要请求的服务的地址

    Ribbon的负载均衡默认使用的最经典的Round Robin轮询算法

     Hystrix:发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题

     

    ZookeeperConsul, Eureka 

     

     

     这就叫服务雪崩。妈耶,上面两个熔断和降级你都没给我解释清楚,你现在又给我扯什么服务雪崩?

    />所谓熔断就是服务雪崩的一种有效解决方案。当指定时间窗内的请求失败率达到设定阈值时,系统将通过断路器直接将此请求链路断开。

     首先我们会有个桶,如果里面没有满那么就会以一定固定的速率会往里面放令牌,一个请求过来首先要从桶中获取令牌,如果没有获取到,那么这个请求就拒绝,如果获取到那么就放行。很简单吧,啊哈哈、

    ########################ribbon 负载配置###################
    ribbon:
    #本地负载规则 最小的并发
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.BestAvailableRule
    #对所有操作请求都进行重试,默认false
    OkToRetryOnAllOperations: false
    #负载均衡超时时间,默认值5000ms
    ReadTimeout: 3000
    #ribbon请求连接的超时时间,默认值2000ms
    ConnectTimeout: 50000
    #对当前实例的重试次数,默认0
    MaxAutoRetries: 0
    #对切换实例的重试次数,默认1
    MaxAutoRetriesNextServer: 0
    小蚊子大人
  • 相关阅读:
    js如何实现base64转文件下载保存到本地
    安装node及环境配置
    一定需要使用(N)Text吗?
    MS Sql Server EXECUTE
    [teach.net]表组织和索引组织
    Optimization Rules of Thumb[part of Technet Article]
    vs2008的用户自定义控件
    执行计划的缓存和重新使用
    保持索引的健康
    SQLServer性能优化计数器
  • 原文地址:https://www.cnblogs.com/ywsheng/p/14949588.html
Copyright © 2011-2022 走看看