Gin的中间件使用 发表于 2023-05-26 | 分类于 Golang Gin是一个流行的Go语言Web框架,使用gin开发web程序十分便捷高效,中间件使用起来也较为方便。中间件在Gin中被定义为一个可以处理请求和响应的函数,它可以被插入到请求处理链中的任何位置。业余研究了一下Gin中的中间件机制,并列举一下使用中间件来实现各种功能。 阅读全文 »
如何控制Go语言goroutine的数量 发表于 2023-05-23 | 分类于 Golang 我们在使用Go语言编写并发程序时,其中一个重要的问题是如何控制goroutine的数量。使用缓冲通道、sync.WaitGroup、semaphore等方法可以实现goroutine的数量控制。 阅读全文 »
Mojo初识 发表于 2023-05-17 | 分类于 Mojo Mojo一个给AI开发者提供的编程语言, 它结合了 Python 的可用性和 C 的性能,释放了 AI 硬件的可编程性和 AI 模型的可扩展性. 阅读全文 »
Go巧用内存对齐-让结构体内存更小 发表于 2023-03-07 | 分类于 Golang 如果你定义一个结构体,那它在内存中到底占用多少内存? 内存的效率高么, 结构体在内存中的分布是怎样的, CPU是怎么读取的? 阅读全文 »
kafka 精妙设计撑起百万TPS 发表于 2022-09-21 | 分类于 kafka Kafka是如何做到超高并发(百万级)的,设计很是精妙,配合巧用文件系统,mmap技术,消息批量处理,零拷贝,简洁的消费者逻辑来完成。尤其是他的暴力输入输出美学,深受启发,对某些应用场景很是有启发作用。 阅读全文 »
Python中关闭文件很重要 发表于 2022-08-29 | 分类于 python 在使用 Python 操作文件时,很多人会使用with上下文管理器来操作。操作系统限制任何单个进程可以拥有的打开文件的数量,这个可以使用工具 ulimit 查看。我们每次操作文件都去使用with来管理上下文,with封装了 try…except…finally 编码范式,能在任何情况下(当然不包括断电)极大限度的帮你关闭文件。 阅读全文 »
kafka的消息模型 发表于 2022-03-31 | 分类于 kafka 本文记录了自己对kafka消息模型的理解, 包括消息生产者和消费者是依据什么生产和拉取消息的, 以及kafka如何保障不同消费组不相互影响,如何保证同一个消费组内的消费者不重复消费消息, 比较适合刚入门的同学. 阅读全文 »
redis主从同步好文推荐 发表于 2022-02-16 | 分类于 redis redis的主从同步会涉及到复制缓冲区, 复制积压缓冲区, 全量复制, 部分同步, replication buffer, 复制偏移量, 复制缓冲区限制, 高 I/O 操作, 磁盘快照 等知识点, 推荐几篇不错的文章 阅读全文 »
redis主从同步细节和坑 发表于 2022-01-20 | 分类于 redis 在部署redis时,为了保证稳定可用,很多情况下采用主从部署的方式,那么你就需要了解一些redis主从全同步和部分同步的知识和这个过程潜在的性能卡点,尤其是大数据量和高并发的情况下,复制缓冲区和复制积压缓冲区很容易出现写满问题。 阅读全文 »
Go的匿名返回值和命名返回值 发表于 2022-01-12 | 分类于 Golang Go的函数返回可以说是别出心裁,既可以用匿名返回值,也可以用命名返回值,虽然这两种方式都可以完成相同的功能,但是这里边还是有一些坑,尤其是在搭配defer的时候,返回的值可能不是你想的那样,很容易产生不太好排查的问题 阅读全文 »