技术

Golang 中的 EOF 与 read: connection reset by peer 错误深度剖析

在 Golang 网络请求中,我们经常会遇到两种常见的错误:`EOF` 和 `read: connection reset by peer`。这两个错误虽然看似相似,但实际上有着本质的区别。这篇文章将深入探讨这两种错误的原因、区别以及如何优雅的处理它们。

技术 2024-08-07 08:30:33 368

技术

为什么你应该在代码中消除 "context deadline exceeded" 错误

在 Go 语言中,context 包提供了一种跨 API 和进程边界传递请求作用域值、取消信号以及超时信号的方式。使用 context 可以帮助我们更好地控制 goroutine,避免 goroutine 泄漏等问题。出现 "context deadline exceeded" 错误通常是因为在请求上下文中设置了超时时间,但请求在超时时间内未完成。我们应该尽量避免这种错误...

技术 2024-06-14 04:17:32 1090

技术

死锁日记:手写 GoLang 上报队列

我们团队负责的防沉迷上报服务突然在某一天遭遇了内存溢出(OOM)的情况。通过查看 Prometheus 监控数据,我们发现 Goroutines 的数量在中午十二点之后呈现出线性增长趋势,直至晚上十点 OOM 发生,Goroutines 数量骤降为零。

技术 2024-05-16 09:16:45 1080