洗冤记:委屈的 Kitex

本文分析了 Kitex 在作为 RPC 框架时遇到的并发问题,导致的 Client Panic 和 Server Panic 两种情况。案例揭示了并发读写可能导致的内存错误在框架编码过程中暴露,提出了解决方案,并强调了日常开发中加强代码质量的重要性。CloudWeGo 项目也被提及,提供了一系列用于构建云原生微服务的中间件。
摘要由CSDN通过智能技术生成

6e1fe725aaeb43da98360f56c8c97402.png

委屈

Kitex 作为一款性能优秀的 RPC 框架,它在各业务中任劳任怨的同时,也不可避免地频繁出没在 panic 的 stack trace 里,因此承受了一些它这个年龄本不该承受的质疑和压力。

389bfa7f5d2148929fd1b6e2282d2ab5.png

为洗 Kitex 的不白之冤,下面介绍两个典型案例。

Case 1: Client Panic

业务同学遇到 panic 监控报警,查日志中发现:

[KITEX: panic, to_service=XXX, to_method=XXX, error=runtime error: invalid memory address or nil pointer dereference

再看 panic 的 stack stace,最内层的两条是:

kitex/pkg/protocol/bthrift.binaryProtocol.WriteBinaryNocopy(...) kitex_gen/XXXRequest.fastWriteField2(...)

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值