Gin 作为一个流行的 HTTP 框架,使用的人数非常多,但是实际上 Gin 也是足够的简单,以至于没有太多可以讲的。但是,虽然可讲的不多,也是有一些描述和思路值得一提,这篇文章是系列文章的第一篇,主要是介绍一下 Gin 是如何处理 HTTP 请求的。因为 Gin 本质上是扩展原生的 HTTP Server,所以在网络模型上没有太多的介绍之处,所以这里主要关注 Gin 的一些主要数据结构,以及这些数据结构是如何与原生的 HTTP Server 结合起来的。
最近趁着假期又在新机器上玩了一下 Flutter,感觉流畅度比 3 年(2020)前好多了,整个从零开始过程几乎没遇到问题,流畅地完成了新手指导,所以顺带记录一下这个过程,以及把之前遇到的问题整理了进来。
没错,这里我确实是说的竞态,而不是静态。Go 因为其简单和出色的并发开发体验而广受欢迎,但是我们经常还是会写出有 Data Race 的代码,但是 Go 很多时候却可以帮助我们检查出来,这篇文章就尝试介绍一下 Go 是如何做到的。
这也是一篇放了很久备忘,在写 README 的时候,因为一些特定的目的,所以想给不同的文本设置一些不同的颜色,在本地编辑工作地好好的,结果一 push 上去居然不工作了,颜色就自动消失了,所以这里总结一下能显示不同颜色的一些常用做法。
最近在洗键盘的时候发现一些有趣的事情,自己想不出来原因,所以查了一下资料分享一下。
之前介绍过如何搭建 Prometheus 和 Grafana,在这一篇文章中,我将继续介绍如何用 Telegram 接收 Grafana 触发的报警信息。
因为已经熟悉了 Prometheus 的模式,所以平时一些服务器软件和小应用都是通过 Prometheus 来监控的,虽然经常搭建 Prometheus 环境,但是没有总结一下,所以每次都需要跑各个地方去找配置(systemd、prometheus、nginx 配置等),所以最近刚好有个新环境,需要重新搭建一下,所以趁机也就顺便记录一下安装配置 prometheus 和 grafana 的过程。
这是最近看到的一篇关于增强 Go 服务可观测性的文章,觉得写地很不错,其中很多观点都与我不谋而合(或许是常规操作了?),还有一些我看到的在试验中的操作这篇文章也提及了(例如持续pprof),所以我把他翻译成中文了。
Node Exporter 的使用是如此之广,但是好像还没有提供 Yum 自动安装,所以这里介绍下如何在 CentOS/Ubuntu 下手动安装 Node Exporter,并且用 Systemd 进行管理。
最近看到别人介绍 alist,发现是个不错的自建 NAS 的选择,然后就尝试在自己的存储机器上试了一下,功能还行,但是一些细节上还比较地野。