dubbo服务治理(一)降级

张晓 2018-01-20

在线网站一般都会有服务器压力剧增的时候,比如说网上商城的促销,这个时候常用的手段就是服务降级,根据当前业务情况及流量对一些服务和页面有策略的降级,以此缓解了服务器资源压力,以保证核心任务的正常运行,同时也保证了部分甚至大部分客户得到正确响应。

服务降级实施策略

  • 页面拒绝服务:页面提示由于服务繁忙此服务暂停。跳转到varnish或nginx的一个静态页面。
  • 服务接口拒绝服务:无用户特定信息的页面能访问,提示服务器繁忙。页面内容也可在缓存(Varnish)或CDN内获取。
  • 延迟持久化:页面访问照常,但是涉及记录变更,会提示稍晚能看到结果,将数据记录到异步队列或log,服务恢复后执行。
  • 随机拒绝服务:服务接口随机拒绝服务,让用户重试,目前较少采用。因为用户体验不佳。

现在说一下dubbo服务的降级方式,有两种方式:

  • 在dubbo-admin中进行动态配置来事项降级 

     
dubbo服务治理(一)降级
 

      其中动态配置中的参数可以定义超时时间

      这里可以使用debug测试,让服务超时,很快消费者会报错

      这里的mock值,这里有容错和屏蔽两个选择

      屏蔽(mock=force):

mock=force:return+null 表示消费方对该服务的方法调用都直接返回 null 值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响

       消费者放直接返回null不远程调用服务

      容错(mock=fail)

还可以改为 mock=fail:return+null 表示消费方对该服务的方法调用在失败后,再返回 null 值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响。

        如果调用失败后返回null
dubbo服务治理(一)降级
 

  • 通过注册配置实现
<dubbo:reference id="iUser" interface="com.dubbosample.iface.IUser"  timeout="1000" check="false" mock="return null">

相关推荐