zoukankan      html  css  js  c++  java
  • Dubbo学习笔记(二)——高可用

    注册中心宕机

    现象:当注册中心发生宕机,消费者还是能够消费dubbo暴露的服务。
    原因:

    • 监控中心掉线不会影响使用,只是丢失部分采样数据。
    • 数据库宕机之后,注册中心仍能通过缓存提供服务列表查询,但是不能注册新的服务。
    • 注册中心对等集群,任意一台掉了,还是能够自动切换到另一台上。
    • 注册中心都挂了,服务提供者和消费者还是可以通过本地缓存实现通讯。
    • 服务提供者无状态,任意一台掉了,还是可以由其他的提供者提供服务。
    • 服务提供者都挂了,那么消费者就不能使用应用了,并且会无限次地重试等待服务者恢复。

    负载均衡机制

    负载均衡策略

    1. 基于权重的随机负载均衡机制
      随机访问的时候,访问概率等于权重比。
    2. 基于权重的轮询负载均衡机制
      轮询访问的时候,访问概率等于权重比。
    3. 最少活跃数负载均衡机制
      尽可能调用相应速度最快的服务提供者。
    4. 一致性哈希负载均衡机制
      根据消费者的请求信息,映射到相应的提供者。

    服务降级

    什么是服务降级

    当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。

    可以通过服务降级功能临时屏蔽某个出错的非关键服务,并定义降级后的返回策略。

    服务降级的策略

    • mock = force:return+null 表示消费方对该服务的方法调用直接放回null值,不发起远程调用。用来屏蔽 不重要服务不可用时对调用方的影响。
    • mock = fail:return + null 表示消费方对该服务器的方法调用在失败后,再返回null,不抛异常。用来容忍不重要服务不稳定时对调用方的影响。

    集群容错

    集群容错模式

    1. failover cluster
      失败自动切换,当出现失败,重试其它的服务器。通常用于读操作,但是重试会带来延迟,可以通过retries=2,来设置重试次数。这是dubbo默认的集群模式。
    2. failfast cluster
      快速失败,发起一次调用,失败了就立即报错。通常用于非幂等性的写操作,比如新增记录。
    3. failsafe cluster
      失败安全,出现异常的时候,直接忽略。通常用于吸入审计日志等操作。
    4. failback cluster
      失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。
    5. forking cluster
      并行调用多个服务器,只要一个成功即可返回。通常用于实时性要求高的读操作,但需要浪费更多的资源。可以通过forks= "2",来设置最大并行数。
    6. broadcast cluster
      广播调用所有提供者,逐个调用,任意一台报错,则报错。通常用于通知所有服务提供者更新缓存或日志等本地资源信息。进行同步。

    集群模式配置

    可以分别在提供方和消费者配置集群模式。默认模式是失败自动切换。

    <dubbo:service cluster="failsafe"/>
    
    <dubbo:reference cluster="failsafe"/>
    

    整合hystrix开启服务容错功能。

  • 相关阅读:
    linux command mktemp
    易经中时常会想起的句子
    判断NumLock键和CapsLock键是否被锁定
    获得虚拟键键码
    获取功能键
    捕获组合键
    模拟鼠标操作
    利用鼠标绘图
    使用鼠标拖放复制文本
    双击窗体是模拟键盘上的Tab键
  • 原文地址:https://www.cnblogs.com/lippon/p/14213620.html
Copyright © 2011-2022 走看看