All Posts

Go framework Gin: HTTP Handling

Gin is a popular HTTP framework and is used by a lot of people, but it is actually simple enough that there isn't much to say about it. However, although there is not much to talk about, there are some descriptions and ideas worth mentioning, and this is the first in a series of articles that will focus on how Gin handles HTTP requests. Since Gin essentially extends the native HTTP Server, there is not much to cover in terms of the network model, so this article focuses on some of Gin's main data structures and how they fit in with the native HTTP Server.

How Golang Detect Data Race

Yes, I do mean race, not static, and Go is popular for its simplicity and great concurrent development experience, but we often write code that has Data Race in it, but Go can often help us check it out, and this article will try to describe how Go does it.

Install/Configure Prometheus and Grafana

Because I am already familiar with Prometheus, some of my server software and small applications are usually monitored through Prometheus. I often build Prometheus environments, but I don't have a summary of them, so I need to run to various places to find the configuration (systemd, prometheus, nginx configuration, etc.). So recently I had a new environment and needed to rebuild it, so I took the opportunity to document the process of installing and configuring prometheus and grafana. Translated with www.DeepL.com/Translator (free version)

CentOS Install Node Exporter

Node Exporter is so widely used, but it doesn't seem to offer automatic installation by Yum, so here's how to install Node Exporter manually under CentOS and manage it with Systemd.

Alist Install and Usage

I recently saw someone introduce alist and found it to be a good option for building your own NAS, then I tried it on my own storage machine, and the features were fine, but some of the details were still rather wild.

Upgrade CentOS 8 Kernel

I previously wrote about upgrading the kernel on CentOS 7, but some of the actions no longer work on CentOS 8, so I’m putting together another version on CentOS 8.

gRPC Web Implementation

This article introduces the implementation of gRPC in the browser. As we all know, gRPC is a bidirectional streaming RPC protocol and library based on HTTP2, so how does gRPC achieve this feature in the browser scenario? This is worth learning, this article will introduce how gRPC is implemented.

KVM Qemu Libvirt introduce and operations

In this article, I will briefly introduce some virtualization concepts related to KVM. Since all of these concepts may have been heard before, but the lack of them is not clear about their specific differences, I will make a small summary in this article to help you understand them.

Install and Configure Go Env Via VSCode in Linux

Introduces the general Linux environment installation method of VSCode and the process of configuring a Go developer environment.

Managing multiple Go versions in a Mac environment

Since there are many projects to maintain, and since these projects have different histories, some may be written by myself, some may be taken over from others, one of the problems I am facing is that Go versions may not be consistent, but you dare not take the risk to upgrade to a consistent version, after all, the test coverage is not enough to give me confidence to do so. So, for now, I'm sticking with the Go version specified by the project, so I have the need to use multiple Go versions locally. This article is about the Mac environment, but it should actually work in the Linux environment as well.