Toggle navigation
码云博客
首页
Devops
PHP
Golang
数据库
Docker
K8s
Ai
杂项
Home
Golang
redis vs etcd 分布式锁实现
小码哥
2025-09-04 15:54:43
Golang
分布式锁
etcd
在构建分布式系统时,确保数据一致性和操作原子性至关重要。分布式锁是实现这一目标的关键工具,它允许多个节点在共享资源上进行互斥访问。本文将深入探讨两种主流的分布式锁实现:基于 Redis 的分布式锁和基于 etcd 的分布式锁,分析它们的原理、核心问题、解决方案,并提供相应的 Golang 代码示例。 Redis 分布式锁Redis 因其高性能、单线程执行命令的原子性以及丰富
阅读全文
NATS JetStream 介绍及实际应用
小码哥
2025-08-18 17:50:51
Golang
middleware
nats
前言在现代微服务架构中,消息队列扮演着至关重要的角色,它负责服务间的解耦、异步通信和流量削峰。NATS 是一个追求极致性能、简洁和可扩展性的消息系统。然而,核心 NATS (Core NATS) 是一个纯粹的内存消息总线,不提供消息持久化,这意味着如果服务下线或重启,消息就会丢失。为了解决这个问题,NATS 团队推出了 JetStream——一个内建于 NATS Server 的
阅读全文
golang channel数据的接收发送流程
小码哥
2025-05-18 15:12:52
Golang
channel
Channel底层数据结构说明```gotype hchan struct { qcount uint // 用于记录当前通道队列中已有的数据元素数量 dataqsiz uint // 指定了通道的循环队列(缓冲区)的大小。也就是通道最多能容纳的数据元素数量 buf unsafe.Pointer // 指
阅读全文
Go 语言中 uintptr和unsafe.Pointer 的区别
小码哥
2025-04-28 19:35:39
Golang
golang
uintptr
`unsafe.Pointer`1. 定义: `unsafe.Pointer` 是一种特殊的指针类型。它可以指向任意类型的数据。你可以把它看作是 C 语言中的 `void`,但功能更受限,主要用于类型转换。2. 类型安全: 顾名思义,使用 `unsafe.Pointer` 会绕过 Go 的类型安全检查。编译器不会阻止你将一个 `int` 转换为 `unsafe.Pointer`,
阅读全文
为什么说golang参数传递皆是值传递?
小码哥
2025-04-22 15:12:19
Golang
值传递
什么是值传递 (PassbyValue)?值传递的核心思想是:当一个变量作为参数传递给函数时,函数接收到的是该变量的一个副本 (copy),而不是变量本身。 函数内部对这个副本的任何操作,都不会影响到函数外部的原始变量。 值类型 (Value Types) 的传递Go 中的基本类型(如 `int`, `float`, `string`, `bool`)、结构体 (`str
阅读全文
链路追踪基础&gf中的应用
小码哥
2025-03-08 15:59:47
Golang
Jaeger
Opentracing
链路追踪基础&gf中的应用 前言在微服务架构的系统中,请求在各服务之间流转,调用链错综复杂,一旦出现问题和异常,很难追查定位。链路追踪系统能够追踪并记录请求在系统中的调用顺序、调用时间等一系列关键信息,从而帮助我们定位异常服务和发现性能瓶颈。 OpenTelemetry分布式追踪(OpenTelemetry) 是一个开源的可观测性框架,旨在帮助开发者收集、处理和导
阅读全文
Go 1.23 新特性之slices 和 sync核心库
小码哥
2024-11-17 17:15:41
Golang
sync
slices
slices新特性Go 1.23 版本于2024年8月14日发布,带来了多项重大更新。本文将重点介绍 `slices`、`sync` 等核心库的小改进,这些改进将大幅提升开发体验。 slices 库的新增特性 Repeat 函数`slices` 库新增了一个 `Repeat` 函数,该函数返回一个新切片,该切片是将原始切片重复指定次数后的结果。函数签名:
阅读全文
Go 1.23 新版本 Timer 和 Ticker 的重要优化
小码哥
2024-11-16 17:27:13
Golang
Timer
Ticker
Timer 和 Ticker 的基本概念在深入探讨 Go 1.23 版本对 Timer 和 Ticker 定时器进行的优化之前,以下是关于这两种定时器的基本介绍: Timer:一次性定时器,用于在未来的某一时刻执行一次操作。常用于单次延迟执行任务。 Ticker:周期性定时器,用于在固定的时间间隔重复执行任务。常用于重复执行任务。 垃圾回收的改进 Go 1.2
阅读全文
Golang设计模式之模板方法模式
小码哥
2024-11-10 16:42:47
Golang
golang
设计模式
模板方法模式模板方法模式是一种行为型设计模式,它在父类中定义一个算法的框架,允许子类在不改变算法结构的情况下重写算法的某些特定步骤。这种模式通过把不变的部分代码放在父类中,把可变的行为延迟到子类中实现,从而提高了代码的复用性。 模板方法模式中的角色 AbstractClass(抽象类):定义了模板方法和算法的框架。它实现了一些步骤,这些步骤可以是具体的方法也可以是抽象方法
阅读全文
Go 1.23 新版本新特性之迭代器
小码哥
2024-11-09 16:58:51
Golang
golang迭代器
golang
Go1.23新特性Go 1.23 版本于2024年8月14日发布,带来了多项重大更新。本文将重点介绍 Go 1.23 版本中的迭代器(iterator)功能,这是对 Go 语言生态系统的一次重要改进。 为什么引入标准迭代器在 Go 语言中,迭代器并非新概念,但现有的迭代器设计和使用方式各不相同。为了统一迭代器的标准化形式,Go 1.23 版本引入了标准迭代器,使得开发者只
阅读全文
上一页
1
2
3
4
下一页
热门标签
laravel (3)
Opentracing (3)
链路追踪 (2)
Jaeger (2)
golang (21)
helm (3)
CRI (1)
kubesphere (1)
k8s (9)
slices (1)
Ticker (1)
Timer (1)
mysql (9)
pattern (2)
golang迭代器 (1)
docker (3)
向量化 (1)
factory (4)
设计模式 (6)
kafka (1)
sync.Once (1)
docker-compose (1)
消息中间件 (2)
sync (3)
pool (1)
池 (1)
queue (1)
gc (1)
垃圾回收 (1)
cond (1)
test (1)
heap (1)
内存逃逸 (1)
算法 (1)
事务 (1)
Singleflight (1)
context (1)
Nginx (1)
mutex (1)
锁 (1)
ACID (1)
php (1)
udp (1)
channel (2)
并发 (1)
es (2)
HTTP (3)
tcp (2)
redis (2)
llm (1)
isito (1)
服务网格 (1)
linux (1)
云原生 (5)
rag (2)
ssh (1)
容器 (4)
devops (3)
gorm (4)
database (2)
gitlab (1)
ai (7)
chatgpt (1)
sd (1)
DB (1)
mcp (4)
量化 (1)
蒸馏 (1)
内存对齐 (1)
MySQL双写策略 (1)
值传递 (1)
uintptr (1)
WaitGroup (1)
agent (1)
map (1)
n8n (1)
tools (1)
nats (1)
middleware (1)
etcd (1)
分布式锁 (1)
置顶推荐
最新评论
友情链接
更多
×
无需注册,用以下帐号即可直接登录。
需要先增加第三方登录配置。
点击前往
最新评论