Kitex踩坑记录,Kitex超时控制问题

简介: Kitex踩坑记录,Kitex超时控制问题

报错问题

2023/010/28 17:20:10.250768 default_server_handler.go:234: [Error] KITEX: processing request error, remoteService=, remoteAddr=127.0.0.1:65425, error=default codec read failed: read tcp 127.0.0.1:8888->127.0.0.1:65425: i/o timeout

分析原因

Hertz rpc 调用base-service服务,kitex不设置读写超时时间默认5s,既在5s内没有收到请求就超时,导致后面请求无法接收,所以只需要设置超时控制时间即可

解决方案

原因:kitex超时控制
详细请见cloudwego文档:https://www.cloudwego.io/zh/docs/kitex/tutorials/service-governance/timeout/
在这里插入图片描述```

package main
import (
    "github.com/cloudwego/kitex/server"
    "go.uber.org/zap"
    "log"
    "net"
    "qiniu/cmd/social/db"
    example "qiniu/cmd/social/kitex_gen/social/example/socialservice"
    "time"
)

func main() {
   
   
    addr, _ := net.ResolveTCPAddr("tcp", ":8801")

    var opts []server.Option
    //配置超时控制
    opts = append(opts, server.WithServiceAddr(addr))
    opts = append(opts, server.WithReadWriteTimeout(365*24*60*60*time.Second))
    opts = append(opts, server.WithExitWaitTime(365*24*60*60*time.Second))
    svr := example.NewServer(new(SocialServiceImpl), opts...)

    db.Init()
    logger, _ := zap.NewDevelopment()
    zap.ReplaceGlobals(logger)
    err := svr.Run()

    if err != nil {
   
   
       log.Println(err.Error())
    }
}
相关文章
|
4月前
|
存储 前端开发 JavaScript
【面试题】面试官问:如果有100个请求,你如何使用Promise控制并发?
【面试题】面试官问:如果有100个请求,你如何使用Promise控制并发?
|
存储 编解码 安全
冥王峡谷安装steamos踩坑记录
记录冥王峡谷安装第三方steamos-holoiso时遇到的一些问题,其它玩家可参考
1840 0
|
8月前
|
数据采集 JavaScript API
猿人学对抗赛踩坑记录
猿人学对抗赛踩坑记录
103 0
猿人学对抗赛踩坑记录
|
9月前
I2C误码了怎么处理
I2C误码了怎么处理
|
10月前
|
微服务
什么是服务雪崩,怎么解决这个问题?
什么是服务雪崩,怎么解决这个问题?
116 0
|
11月前
|
数据采集 Python
python爬虫怎么解决超时timeou错误
python爬虫怎么解决超时timeou错误
|
11月前
|
前端开发 关系型数据库 MySQL
用户重复注册分析-多线程事务中加锁引发的bug
用户重复注册分析-多线程事务中加锁引发的bug
120 0
|
设计模式 Kubernetes 算法
leader说用下httpclient的重试,但我没用,因为我有更好的方案。
leader说用下httpclient的重试,但我没用,因为我有更好的方案。
156 0
|
缓存 前端开发 API
异步的发展,顺手学会怎么处理多请求
异步的发展,顺手学会怎么处理多请求
91 0
|
消息中间件 关系型数据库 MySQL