暂无搜索历史
在Go语言的并发编程中,channel扮演着至关重要的角色。它不仅是Goroutine之间通信的桥梁,更是实现优雅并发模式的核心工具。由Go语言之父Rob Pi...
很多同学第一次写 Go 的并发代码时,都会尝试用 for + select 来监听 channel:
想象一下,你有几十上百个服务副本,每个 Pod 的 IP 地址都像是临时旅馆的房号——今天住 101,明天就可能换到 307。要是每个调用方都去记 Pod 的 ...
在 Go 语言的并发编程中,goroutine 是一个非常强大的概念,它允许我们同时执行多个任务。然而,很多时候我们并不希望一个 goroutine 永远运行下...
在 Go 语言的开发过程中,我们经常会用到一些第三方工具,比如 golangci-lint、air、cobra-cli 等等。这些工具都有一个共同的特点:你可以...
在微服务架构的落地过程中,模块的拆分往往是最具挑战性的问题之一。拆得过细,系统会陷入“分布式地狱”,调用链冗长、运维复杂;拆得过粗,又会变成“伪微服务”,无法发...
作为一名程序员,我一直把 索引 当作数据库的“导航系统”。当表里只有几百行数据的时候,MySQL 像个勤快的小弟,翻翻全表也就几毫秒的事。但当数据量上百万甚至上...
在Go语言中,map 是一种非常常用的数据结构,它允许通过键值对存储和访问数据,提供了非常高效的查找操作。对于很多应用场景,map 是一种理想的选择。然而,在多...
在 Go 中 sha256.Sum256() 返回的是一个 固定长度的数组 [32]byte,如果我们需要把它转成 字节切片([]byte) 或 字符串(十六进...
前者往往不可避免——业务规则、合规与现实世界的边缘场景会存在;后者是可以被设计、组织与流程所控制的。目标不是消灭所有复杂性,而是把必要的复杂性放在对业务最有利、...
在Go语言中,"空值"是一个重要概念,它表示变量或数据结构未被初始化或显式赋值的状态。
在后端开发中,数据在服务之间的传输几乎是家常便饭。常见的传输格式有 JSON 和 Protobuf,这也是我们最常用的消息编码方式。
这篇文章我们继续来分享Prometheus的四大指标类型,经过了上一篇文章的讲解,我们已经搭建好了项目,现在就开始配置Prometheus,让它能够从我们的项目...
在云原生和微服务架构盛行的今天,监控系统的重要性不言而喻。Prometheus 作为其中的佼佼者,凭借其强大的数据模型和查询语言,成为了监控领域的标准。
在 Go 语言的日常开发中,slice 基本上就是“家常便饭”。可问题来了:当你在多线程(goroutine)下对同一个 slice 做 append 时,它真...
我常看到许多糟糕的系统设计建议。一种经典例子是针对行业新人写的“你可能从没听说过消息队列的帖子”,还有像“如果你在数据库里存布尔值就是糟糕工程师”的那种推特式“...