![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程池
文章平均质量分 92
想搞艺术的程序员
IT 是一门top艺术
展开
-
Go 并发请求量限制组件分享
背景关于限流Go官方通过一个采用令牌池的算法的实现:golang.org/x/time/rate,但是,这个限制的是每秒的请求数,有的时候我们希望限制的是系统并发处理的请求数量,类似线程池的功能,需求如下:设置一个最大的请求处理数量,当请求超过时,后续请求将等待,直到有请求处理完后被唤醒。请求的等待时间能够指定,超出等待时间就返回,提示给客户端。等待请求的个数需要能够限制,数量超过时就直接返回,提示给客户端。设计设计思路是实现一个Ticket池(NumLimiter),每个请求首先需要向Nu原创 2022-01-11 21:07:12 · 649 阅读 · 0 评论 -
Go database/sql连接池 - 源码学习
引言Go内置了数据库相关的库 - database/sql,实现数据库操作相关的接口,其中还包含一个很重要的功能 - 连接池,用来实现连接的复用,限制连接的数量,从而最大程度的复用连接,提高性能,避免连接数量失控,导致资源消耗不可控。本文借Go内置的database/sql库,来一起学习如何一步步设计包含连接池的数据库组件,包括模型抽象、连接复用,以及如何管理连接数。设计模型抽象首先,我们要对解决领域进行抽象。我们目标是设计一个数据库连接组件,所以第一个对象模型很明确 - 数据库对象, 我们将数原创 2021-12-27 18:32:15 · 1157 阅读 · 0 评论