✅难得真实的生产数据库死锁问题排查过程 以下是笔者看网上并结合自己的经历整理所得。真真切切的发生的事情。希望能帮助到你 这是一个真实的生产问题,经过长时间的排查和多次寻求 DBA 的帮助,最终我自己花了一个月的时间才定位到这个问题。问题非常有意思,值得大家关注。 问题现象 某天晚上,同事正在发布时,突然线上出现大量报警,其中很多是关于数据库死锁的。报警提示信息如下: {"errorCode":"SYSTEM 数据运维 2024-06-24 向阳逐梦
Go 新提案:用 #err 标识符去做错误处理! 大家好,我是煎鱼。 前几天看 Reddit 社区里的讨论,发现 Go 这一门编程语言,错误处理永远是讨论的议题之一。本着追踪网友脑洞 Proposal 的基础上,周末看到个被反对比较多的 Go2 错误处理提案。 图片 今天结合分享给大家,好的坏的都可以看看别人的想法。 问题背景 在 Go 这门编程语言中,错误处理机制主要是依赖于 if err != nil 的方式。因此在对函数做一定的封装后。 代 开发运维 2024-06-05 LOVEHL^ˇ^
关于全局变量的坑, Golang熟手们经常遇到 学习golang不久,在定义全局变量的时候遇见了坑。写个小例子,增强记忆。 错误版本 var p int func main() { p, err := test(4) if err != nil { log.Fatal(err) } } func test(i int) (int, error) { return i + 1, nil } 编译一直不通过,p declared and not u 开发运维 2024-05-27 大白菜程序猿
要么返回错误值,要么输出日志,别两样都做 缘起 这周,一个产品团队内进行Go代码评审时,得到了一个结论:所有的if err != nil的地方都应该输出错误日志。然而,这种做法并不是最佳实践,它存在一些问题。 首先,打印过多的错误日志会导致日志文件变得冗长和难以阅读。其次,重复的错误信息会增加冗余。此外,每一层都打印错误日志,一旦错误信息设计不当,可能会导致上下文信息的丢失。 让我们来看一个示例,说明为什么同时输出错误日志和返回错误 开发运维 2024-04-15 泡泡