快乐的程序员
04
21
手把手教你使用 pprof 手把手教你使用 pprof
写在前面pprof 是 Go 语言自带的性能分析工具,用于识别和解决应用程序中的性能瓶颈问题。大家应该或多或少有听说过 “三高代码”,这里的 “三高” 并不是指 “高血压、高血糖、高血脂”,而是指 ”高性能、高并发、高可用“,而 pprof
2024-04-21
20
分布式锁需要注意什么问题 分布式锁需要注意什么问题
写在前面在分布式系统中,实现分布式锁是一项常见的需求。为了追求性能,通常使用Redis使用分布式锁,但是想要实现高性能并且数据安全的分布式锁,并非易事,先看一下分布式锁要满足哪些特性。 需要注意的问题 互斥,一个线程获取到锁,其他线程只能等
2024-04-20
20
20
mysql B+树的索引一般有多少层 mysql B+树的索引一般有多少层
写在前面这个问题在实际工作中可能作用不大,但是面试过程中可能会被问到,这就涉及到对B+树以及InnoDB页的了解。本文将分析这个问题。 答案首先回答这个问题:一般是1-3层。 InnoDB页在 MySQL 中我们的 InnoDB 页的大小默
2024-04-20
18
kafka零拷贝原理 kafka零拷贝原理
写在前面这个问题经常在面试中出现,本文将详细介绍它的底层原理 零拷贝是什么意思零拷贝并不是不需要拷贝,而是减少不必要的拷贝次数。通常是说在 IO 读写过程中。 实际上,零拷贝是有广义和狭义之分,目前我们通常听到的零拷贝,包括上面这个定义减少
2024-04-18
15
go singleflight源码解读 go singleflight源码解读
写在前面go singleflight提供了一个重复的函数调用抑制机制,这个库的主要作用就是将一组相同的请求合并成一个请求,实际上只会去请求一次,然后对所有的请求返回相同的结果。其本质是对函数调用的结果进行复用。 为什么需要singlefl
2024-04-15
15
rpc协议最重要的2个内容:编码和协议 rpc协议最重要的2个内容:编码和协议
写在前面之前用7天实现了一个grpc框架7d-rpc, 了解了rpc框架底层原理,其中最重要的部分就是编码和协议,其他都是附加功能。如果将rpc框架比作一个人,那编码和协议就是大脑和心脏,其他功能就是手和足,比如:服务发现、负载均衡、客户端
2024-04-15
12
11
10
10
09
go channel源码解析 go channel源码解析
写在前面在面试过程中经常会被问到有没有阅读过go源码,前面写了一篇文章go slice扩容是怎么计算大小的 专门针对这个问题的,学了这篇文章你就可以跟面试官说阅读过go源码,并且将他引导到go slice扩容的地方。 go slice的扩容
2024-04-09
3 / 23