All Posts

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 核心要解决的问题以及它是如何解决的,以及介绍了可能遇到的问题和解决办法,在最后,我还会介绍几个常见的兼容套路(从官方文档学习来的)。

Git Bare Repo

最近有同事做了一个简单的分享,其中介绍到了一个 bare repo 的东西,使用 Git 也有些年头了,但是还真对 Bare Repo 没有印象,所以就简单了解了一下。

Go 中 TCP 连接读写 Deadline 实现

在写 Go 网络程序的时候,有个 TCP 连接的系列方法是我很常用的:`SetDeadline`、`SetReadDeadline`、`SetWriteDeadline`,他们的作用就是等待 TCP 连接的读写操作,如果在预设的时间点还没有读或者写操作的话,读的方法就会直接返回,并且返回一个 `os.ErrDeadlineExceeded` 类型的错误,这通常用于在判定连接是否已经失联的情况。在这篇文章中,我将介绍如何使用他们以及 Go 是如何实现他们的,并且尝试用 C++ 实现类似的效果。

Socket.IO 小坑总结

最近在接手一个 Web 推送的网关,主要功能其实就是通过 Socket.IO 协议接收前端的连接,然后推送消息给对应的前端,但是,在调试的时候,遇到了一个不能成功连接的问题,这里做一个总结。

HTTP 上传下载实现

在互联网中,上传和下载都是非常常见的操作,而且不同于内网环境,通常这些操作都是通过 HTTP 协议实现的,所以在这篇文章中我尝试解释一下 HTTP 常用的上传和下载的实现,并且在协议层尝试解释一下 HTTP 的实现原理。

如何隐藏一个 Linux 进程

最近看到一个项目:libprocesshider,它可以用于隐藏一个 Linux 进程,处于好奇,就尝试了一下,发现涉及到几个有意思的点,所以记录一下。