一场与内存怪兽的较量:Golang 内存分析实战


前言: 滴滴滴,线上崩了吗? 滴滴滴!你的屏幕上亮起了一串熟悉又令人胆寒的红色预警——线上内存告警!作为一个 “优秀打工人”,你迅速打开监控页面,眼前的一切让你不禁脱口而出一句:“卧槽,这都干了啥?rss 竟然飙到了 60GB!” 心情还没平复,流量已然汹涌。经过限流、降级、释压等一番紧急操作,终于

分享:operator开发基本流程


在 Golang 中开发一个 Kubernetes Operator 是一种强大的方式,用于管理复杂集群资源和自动化任务。以下是基于 Golang 开发一个 Operator 的完整流程,包括用到的工具、步骤以及最佳实践。我们主要依赖主流的 controller-runtime 和 Kubebuil

使用 Golang 实现手机验证码验证


在现代应用开发中,手机验证码验证功能已成为用户身份认证和安全验证的常见手段,尤其是在登录注册、密码重置等场景中。本文将重点讲解如何使用 Golang 实现一个简单、高效的手机验证码功能,并探讨其在后端的存储和验证流程。 在此方案中,我们将结合常用工具(如 Redis 和第三方短信服务)提供完整的实现

Golang 与 MySQL 的交互过程中,如何防止 SQL 注入攻击


SQL 注入攻击(SQL Injection)是一种常见的安全问题,攻击者通过向应用程序输入恶意构造的 SQL,通过数据库的执行逻辑篡改原始查询,进而获取机密数据或修改数据库。Golang 与 MySQL 的交互中,如果未正确处理用户输入,也会暴露在 SQL 注入的风险下。 防止 SQL 注入攻击是

Golang 中如何排查死锁问题

Golang 

在并发编程中,死锁是一个常见而严重的问题,它会导致程序无法继续执行,进而影响系统可用性和用户体验。作为一个并发编程语言的代表,Golang 提供了强大的工具和机制来处理高效的多线程任务,但如果对锁的使用不当,也会出现死锁问题。 本文将探讨在 Golang 中如何排查死锁,详细介绍死锁产生的原因、定位

Golang 操作 MySQL 时如何优化大量数据插入效率


在实际开发过程中,面对大量数据需要写入 MySQL 的场景并不少见,比如日志处理、批量数据迁移、交易记录写入等。这种情况下,如果不进行合适的优化,插入效率可能会成为系统性能的瓶颈。本文将通过分析 Golang 操作 MySQL 的插入场景,带大家了解如何在大规模数据插入时提高效率,并提供一些最佳实践

Golang 连接 MySQL 数据库的常用库分享


在现代开发中,Go(或称 Golang)因其高效、并发性和简单易用的特点被广泛用于后端开发。其中,操作数据库是后端业务中不可或缺的一部分。在 Golang 中,链接 MySQL 数据库的库有多个选择。本go文将重点介绍其中两个常用库:database/sql 标准库和第三方 ORM 框架 Gorm,

深入解读 Golang 的依赖管理:go mod、go work 和 go vendor

Golang 

现代软件开发过程中,依赖管理是重要的组成部分,它决定了如何轻松开发高质量软件,如何处理复杂的依赖关系,以及如何保证项目的可维护性和可移植性。在 Golang 中,模块化依赖管理体系得到了长足发展,通过 go mod、go work 和 go vendor 等工具,我们可以轻松管理项目的依赖,并在团队

实用设计分享:千万行日志,如何获取指定时间戳之后的n行日志?


一、背景描述 1.为什么会想到做这个场景?这个场景有什么意义? 我们的项目主要是作为集团的基础服务,提供业务可观测支撑的。在大概一年前,我们项目接到了上游同学的需求,想要查看业务异常时候的日志。 首先说一下业务场景,由于我们是基础服务,从资源供给的角度来讲,我们没有办法,全量采集所有上层业务的日志。