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())
    }
}
AI 代码解读
目录
打赏
0
0
0
0
0
分享
相关文章
【Golang】如何声明弃用(Deprecated)
【Golang】如何声明弃用(Deprecated)
1946 5
docker、docker compose、k8s有什么区别?
Docker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,它是我们使用其他容器技术的核心。
328 1
2分钟看懂RocketMQ延迟消息核心原理
本文从源码层面解析了RocketMQ延迟消息的实现原理,包括延迟消息的使用、Broker端处理机制以及定时任务对延迟消息的处理流程。
2分钟看懂RocketMQ延迟消息核心原理
文字溢出隐藏及鼠标悬停显示效果
文字溢出隐藏及鼠标悬停显示效果
251 0
【PolarDB开源】PolarDB SQL优化实践:提升查询效率与资源利用
【5月更文挑战第24天】PolarDB是高性能的云原生数据库,强调SQL查询优化以提升性能。本文分享了其SQL优化策略,包括查询分析、索引优化、查询重写、批量操作和并行查询,以及性能监控与调优方法。通过这些措施,可以减少响应时间、提高并发处理能力和降低成本。文中还提供了相关示例代码,展示如何分析查询和创建索引,帮助用户实现更高效的数据库管理。
484 1
|
11月前
|
如何使用 Golang 实现继承:详细指南
【8月更文挑战第31天】
933 0
ECS热门应用 | 轻松打造一套 Web IDE
使用ECS云服务器搭建网页IDE,增强编码便捷性,提升开发者体验。
ECS热门应用 | 轻松打造一套 Web IDE
架构设计|基于 raft-listener 实现实时同步的主备集群
本文介绍如何从数据库内核角度建立一套实时同步的主备集群,确保线上业务的高可用性和可靠性。本系统采用双 AZ 主备容灾机制,并要求数据与 schema 实时同步,同步时延平均在 1 秒内,p99 在 2 秒内。此外,系统支持高效的自动或手动主备切换,并能在切换过程中恢复丢失数据。
279 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问