高并发服务器-连接池实现(c++版本)

前言

记得鲁迅说过,天下武功,维快不破!
但记得鲁迅还说过,男人不能轻易说自己很快!
是不是经常听到我们的系统是ns级别的响应,夸张了,哦不对是毫秒。
是不是经常遇到这种池那种池,为啥要用他们?说白了,就是为了快!

池化技术

池化技术减少了各种对象的创建和销毁的开销,间接提高了服务响应的速度。
其实我们常见的内存池/连接池/线程池,基本都是为了提高速度来的。
这是这些池化技术的共同特点:
1. 减少了对象创建时间
2. 减少对象创建消耗大量的资源
3. 对象创建后可被重复使⽤

数据库连接池技术

我们都知道,数据库的连接数量是有限制,创建和释放的开销并不小,如果我们在程序启动时,就进行数据库的连接的创建,后面如果需要使用到的地方,直接从连接池中获取使用,这样,我们的连接不但复用了,也减少了频繁操作数据库的连接导致的一些其他问题。

如果假设你不使用连接池,每个使用到数据库的地方,都取创建连接,发送数据,关闭连接,这样存在的以下三个问题:

1、连接和释放需要时间,三次握手四次挥手,加上中间的时间消耗,系统性能并不好

2、关闭连接在服务端会导致出现Time_Wait状态的TCP链接

3、管理维护混乱,依赖程序员的水平,不能做到组件化。

数据库连接池实现

连接池需要的数据结构,我们知道,至少要拥有一个连接池管理器,

对外的接口:

1、初始化池:包括对数据库的连接,连接数管理

2、获取连接:外部可通过池获取连接

3、归还连接:外部使用完连接后要归还

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值