当前位置:网站首页>[ Kitex 源码解读 ] 请求重试
[ Kitex 源码解读 ] 请求重试
2022-08-09 15:55:00 【InfoQ】
Kitex
CloudWeGo 源码解读

请求重试
- 建连失败重试(框架会默认重试)
- 超时重试
- Backup Request
建连失败重试
超时重试
- 确认你的服务具有幂等性,再开启重试
- 超时重试会增加延迟
用法
fp := retry.NewFailurePolicy()
// 可选配置,重试次数, 默认2,不包含首次请求
fp.WithMaxRetryTimes(xxx)
// 可选配置,总耗时,包括首次失败请求和重试请求耗时达到了限制的duration,则停止后续的重试。
fp.WithMaxDurationMS(xxx)
// 关闭链路中止(下游整个链路都会正常重试,有重试放大风险,请慎重。)
fp.DisableChainRetryStop()
// 开启DDL中止
// 该策略是从链路的超时时间判断是否需要重试。
// 注意,Kitex 未内置该实现,需通过 retry.RegisterDDLStop(ddlStopFunc) 注册 DDL func,
// 结合链路超时判断,实现上建议基于上游的发起调用的时间戳和超时时间判断。
fp.WithDDLStop()
// 退避策略,默认无退避策略
fp.WithFixedBackOff(fixMS int) // 固定时长退避
fp.WithRandomBackOff(minMS int, maxMS int) // 随机时长退避
// 开启重试熔断
fp.WithRetryBreaker(errRate float64)
// 同一节点重试
fp.WithRetrySameNode()
cli, err := echo.NewClient(
"echo",
client.WithHostPorts("0.0.0.0:8888"),
client.WithFailureRetry(fp),
)
if err != nil {
log.Fatal(err)
}
for {
req := &api.Request{Message: "my request"}
resp, err := cli.Echo(context.Background(), req)
if err != nil {
log.Fatal(err)
}
log.Println(resp)
time.Sleep(time.Second)
}Backup Request
注意
DisableChainRetryStop
边栏推荐
猜你喜欢

A51 - 基于STM32的DHT11和LCD显示串口通信仿真

<IDEA 使用小技巧&&常用键联合操作>

关于聊天机器人,跨境电商人必须知道这些…

Leading practice | How the world's largest wine app uses design sprint to innovate the vivino model

Qt学习第二天

Reasons for slow startup of IDEA (1)

Video chat source code - how to improve the quality of one-to-one live broadcast?

面试官:Redis 大 key 要如何处理?

Knowledge Bits - How to Write a Project Summary

B44 - 基于stm32蓝牙智能语音识别分类播报垃圾桶
随机推荐
网络——虚拟专用网和地址转换NAT
网络——数字数据编码
uniapp 项目搭建
Selenium的安装
【燃】是时候展现真正的实力了!一文看懂2022华为开发者大赛技术亮点
2019强网杯高明的黑客
Qt学习第二天
央企施工企业数字化转型的灵魂是什么
Codeforces Round #808 (Div. 2)||Precipitation
网络——介质访问控制
NFT+IDO预售代币合约模式系统开发
总结了 110+ 公开专业数据集
无需支付688苹果开发者账号,xcode13打包导出ipa,提供他人进行内测
2022小米运维开发笔试1
价值10亿美元 美国向乌克兰提供单次最大规模安全援助
打印星型图「建议收藏」
中科院打脸谷歌:普通电脑追上量子优越性,几小时搞定原本要一万年的计算...
<IDEA using tricks & & combined operation of common keys>
【开源教程4】疯壳·开源编队无人机-OPENMV 脚本烧写
2.1, pay attention to the network based on parallel context scenario text image super-resolution