当您的系统遇到一些非致命性的错误(如偶现的超时等)时,可以通过重试的方式来避免系统最终失败。AHAS的自动重试规则可以在客户端的部分场景下为系统提供自动重试的能力,同时支持自定义重试策略。本文介绍如何配置自动重试规则。
前提条件
将应用接入AHAS应用防护,具体操作,请参见接入应用方式。
背景信息
自动重试规则仅支持AHAS Sentinel Java SDK 1.8.0及以上版本,且仅支持通过注解方式埋点(@SentinelResource)或SentinelWrapper自定义埋点,以及Apache HttpClient/OkHttp适配接入的应用。通过Java Agent以及其他多语言SDK方式接入的应用暂不支持。关于接入Http Client的操作步骤,请参见接入Http Client。
场景说明
以下场景建议您不要设置自动重试规则:
- 建议您不要对致命错误(Fatal Error)重试,重试条件策略一般采取白名单机制(如只对超时异常、限流异常重试)。典型的报错像Error、ClassNotFoundException、IllegalArgumentException这些都建议您不要进行重试,业务错误建议您不要进行重试。
- 重试需要注意幂等性,非幂等的操作在部分场景下重试(如超时,请求已到达对端)可能会不符合预期。
- 前端应用,超时时间长且慢的接口,建议您不要进行重试。
- 对于NIO、Netty、Reactive场景而言,建议您不要在EventLoop线程中重试,避免等待时阻塞事件传递,降低系统吞吐量。
在文档使用中是否遇到以下问题
更多建议
匿名提交