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())
    }
}
相关文章
|
Docker 容器
【Docker系列】docker-compose文件如何传递参数
【代码】【Docker】docker-compose文件如何传递参数。
1641 0
【Docker系列】docker-compose文件如何传递参数
|
机器学习/深度学习 存储 算法
如何将照片或者视频中的背景图抠掉,机器学习开源项目使用 | 机器学习
如何将照片或者视频中的背景图抠掉,机器学习开源项目使用 | 机器学习
如何将照片或者视频中的背景图抠掉,机器学习开源项目使用 | 机器学习
|
11月前
|
人工智能 测试技术 Go
Go 语言的主流框架
本文全面解析了 Go 语言主流技术生态,涵盖 Web 框架、微服务、数据库工具、测试与部署等多个领域。重点介绍了 Gin、Echo、Beego 等高性能框架,以及 gRPC-Go、Go-Micro 等微服务组件。同时分析了 GORM、Ent 等 ORM 工具与测试部署方案,并结合场景提供选型建议,助力开发者构建高效稳定的 Go 应用。
2529 0
|
存储 开发框架 Devops
eino — 基于go语言的大模型应用开发框架(一)
Eino 是一个受开源社区优秀LLM应用开发框架(如LangChain和LlamaIndex)启发的Go语言框架,强调简洁性、可扩展性和可靠性。它提供了易于复用的组件、强大的编排框架、简洁明了的API、最佳实践集合及实用的DevOps工具,支持快速构建和部署LLM应用。Eino不仅兼容多种模型库(如OpenAI、Ollama、Ark),还提供详细的官方文档和活跃的社区支持,便于开发者上手使用。
3018 8
|
Ubuntu Linux
在Linux中,如何添加路由?
在Linux中,如何添加路由?
|
机器学习/深度学习 人工智能 搜索推荐
《探秘AI驱动的个性化推荐系统:精准触达用户的科技密码》
在这个信息爆炸的时代,AI驱动的个性化推荐系统应运而生,通过数据收集与处理、构建用户画像、核心算法(协同过滤与基于内容的推荐)及深度学习技术,精准洞察用户需求。它广泛应用于电商、视频平台等领域,提升用户体验和商业效益。尽管面临数据稀疏性、隐私保护等挑战,未来将更加精准、实时并注重用户隐私。
2027 1
《探秘AI驱动的个性化推荐系统:精准触达用户的科技密码》
|
存储 JSON Go
在Gin框架中优雅地处理HTTP请求体中的JSON数据
在Gin框架中优雅地处理HTTP请求体中的JSON数据
|
资源调度 JavaScript 前端开发
创建vue3项目步骤以及安装第三方插件步骤【保姆级教程】
这是一篇关于创建Vue项目的详细指南,涵盖从环境搭建到项目部署的全过程。
1164 1
|
NoSQL 关系型数据库 MySQL
你了解微服务的超时传递吗?
你了解微服务的超时传递吗?
|
存储 Shell Docker
docker 部署单节点的etcd以及 常用使用命令
在 Docker 中部署单节点的 etcd 以及一些常用命令的操作,可以按照以下步骤进行: ## 一、部署单节点 etcd 1. **拉取 etcd Docker 镜像**:您可以从 Docker Hub 拉取 etcd 的官方镜像。 ```shell docker pull quay.io/coreos/etcd:latest ``` 2. **启动 etcd 容器**:使用 `docker run` 命令来启动 etcd 容器。以下是一个示例命令,其中将容器的 2379 端口映射到主机的 2379 端口: ```shell docker run -d \
2561 1