All Posts

一个关于 Kafka 迁移的线上事故回顾

在这篇文章中,我将回顾一下在我工作过程中遇到过的一个关于迁移 Kafka 的事故,虽然问题的本质是操作过程中缺乏严谨造成的,但是这个迁移过程还是有一些可以学习的地方的。所以在闲暇之余趁着我还记得一些细节,就记录一下事情的来龙去脉,以及问题出现的原因。

Mocks 不是 Stubs

在清理收藏夹的时候看到这篇文章 Mocks Aren't Stubs,所以就准备消化一下,看完之后,总得来说收获不大,所以在开头我抽象了一下我的理解,然后顺便贴一下翻译过来的文章。

搭建 Github 私有 Runner

记录一下自建 Github Runner 的过程。

HTTPS 握手过程实操

在之前我写过一篇介绍 HTTPS 如何握手的文章:HTTPS 握手过程,但是,那篇文章是纯嘴炮,从理论上介绍 HTTPS 的握手过程是怎么样的,虽然对我的帮助挺大,但是,这几天在我真的分析 HTTPS 数据包的时候,发现和现实还是有一点点的差距,于是今天我就介绍一下实战,从真实的数据包出发查看一下 HTTPS 握手的全过程。

Kafka Go SDK 使用和要点

在这篇文章中,我将以 Go 语言为例,使用 Sarama SDK演示如何通过 Kafka 生产和消费消息。其中,消费消息我将演示两种模式的消费方式,分别是自动提交消息已被消费以及主动提交消息消费 ACK 的模式,实际上这也是不同的消息处理模型(即最多消费一次和最少消费一次)的实践。但是在这里我没有演示有且只消费一次的模式,因为这不是单单消息队列就能支持的功能,还需要一些额外的业务支持才可以,所以点到即止,没有进行深入地演示。

Kafka 安装和运维

最近因为用到了 Kafka,所以需要了解一下 Kafka 的情况,在这篇文章中,我将介绍如何安装 Kafka 和平时运维 Kafka 使用的一些命令,这些命令在开发和定位过程中应该会经常使用到。

容器环境下 Go 如何获取 CPU 核数

最近在看一个库的实现代码时,发现它依赖于查看进程使用的 CPU 核数,然后根据 CPU 核数做一些限制,所以我就顺便看了一下 Go 是如何实现查看 CPU 核心数的。

Cloudflare R2 使用指导

最近发现 Cloudflare 越来越豪横了,都开始支持对象存储了,并且免费的额度还挺香,所以就想尝试一下,本文就记录了我的尝试过程以及一些使用的方式介绍。

Ubuntu 安装 Python 3.12

在 Ubuntu/Debian 系统中,编译安装 Python 3.12 的步骤。

关于 Go Module 的一些思考

在这篇文章中,我简单地介绍了一下 Go Module 核心要解决的问题以及它是如何解决的,以及介绍了可能遇到的问题和解决办法,在最后,我还会介绍几个常见的兼容套路(从官方文档学习来的)。