WaitGroup底层原理

WaitGroup核心组件`WaitGroup` 结构体内部主要包含以下两个核心部分(在较新的 Go 版本中,实现有所优化,但基本思想一致):1. `counter` (计数器):这是一个整数,用来记录需要等待的 goroutine 的数量。 当我们调用 `Add(n)` 方法时,这个计数器会增加 `n`。 当我们调用 `Done()`
阅读全文

MySQL数据库事务和ACID特性

MySQL数据库事务和ACID特性 1. 概述本文将深入探讨数据库事务和ACID(原子性、一致性、隔离性、持久性)特性,并详细解释MySQL是如何实现这些特性的。结论: 一致性(Consistency)是最终目标; 原子性(Atomicity)、隔离性(Isolation)、持久性(Durability)是实现一致性的手段。MySQL通过以下方式实现ACI
阅读全文

Go语言之防缓存击穿利器 Singleflight

Go语言之防缓存击穿利器 Singleflight 1. 缓存击穿在日常开发中,为了提升性能和减轻数据库的压力,通常会对热点数据进行缓存。例如,使用 Redis 缓存用户请求的数据,如果缓存中有数据则直接返回,否则查询数据库并将结果写入缓存。但是,如果缓存失效了,在查询数据库和将数据再次写入缓存的过程中,其他请求也会出现缓存未命中的情况,导致大量请求直接打到数据库,给数据
阅读全文

Golang sync.Mutex源码解析

Golang sync.Mutex源码解析Go 语言在 `sync` 包中提供了用于同步的一些基本原语,`sync.Mutex` 就是其中最常用的一个。 1. 基本结构Go 语言的 `sync.Mutex` 由两个字段 `state` 和 `sema` 组成。其中 `state` 表示当前互斥锁的状态,而 `sema` 是用于控制锁状态的信号量。```go//
阅读全文

Golang Channel源码解析

Golang Channel源码解析 1. 概述Golang官方对 `chan` 的描述如下: A channel provides a mechanism for concurrently executing functions to communicate by sending and receiving values of a specified element t
阅读全文

Golang中的Map数据结构

Golang中的Map数据结构在Go语言中,`map`是一种非常强大的数据结构,它提供了键值对的存储和快速查找功能。本文将详细介绍Go语言中`map`的数据结构、实现原理和常见操作。 一、Map的数据结构Go语言中的`map`数据结构由`runtime/map.go`中的`hmap`定义:```gotype hmap struct { count
阅读全文

详解TCP、UDP和HTTP

详解TCP、UDP和HTTP在计算机网络中,TCP(传输控制协议)、UDP(用户数据报协议)和HTTP(超文本传输协议)是三种重要的协议。它们分别在不同的层次和场景中发挥着重要作用。本文将详细介绍这三种协议的工作原理、特点及其应用场景。 一、TCP(传输控制协议) 1.1 概述TCP(Transmission Control Protocol)是一种面向连接的、可
阅读全文

HTTP的三次握手和四次挥手

HTTP的三次握手和四次挥手在计算机网络中,TCP(传输控制协议)是一个至关重要的协议。为了确保数据的可靠传输,TCP采用了“三次握手”机制来建立连接,用“四次挥手”机制来断开连接。本文将详细介绍这两种机制的工作原理。 一、TCP三次握手TCP的三次握手(ThreeWay Handshake)是客户端和服务器在传输数据前建立连接的过程。其主要目的是确保双方都有能力发送和接
阅读全文

Dockerfile基本使用

Dockerfile介绍Dockerfile是一种能够被Docker程序解释的剧本。Dockerfile由一条一条的指令组成,并且有自己的书写格式和支持的命令。当我们需要在容器镜像中指定自己额外的需求时,只需在Dockerfile上添加或修改指令,然后通过docker build生成我们自定义的容器镜像(image)。 4.4.2 Dockerfile指令 构建类指令
阅读全文

Isito基础入门

Isito基础入门 什么是istioIstio 是一个开源的服务网格(Service Mesh)解决方案,主要用于简化微服务应用的连接、安全、观察和管理。它通过在应用服务之间插入代理(sidecars)(最新版本还支持Ambient模式),提供了统一的方式来处理包括流量管理、服务发现、负载均衡、健康检查、认证授权、可观测性和监控在内的各种功能。 服务网格(Serv
阅读全文