架构经典设计思想之池化
池化
将资源统一使用资源池管理起来,精细化控制使用
充分使用复用的思想,减少共享资源的创建开销
常见案例
数据库连接池、redis 连接池、fasthttp、FG 集群调度池、Go 协程池、K8S 调度、Go runtime 的 GMP 调度、操作系统调度、UB 统一内存池
数据库连接池
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。 这项技术能明显提高对数据库操作的性能。
实现连接池时,注意最小连接数、最大连接数、保活时间、连接健康探测时间。下面是 druid 连接池简单示例。
druid 开源参数配置参考:https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8
复制代码
redis 连接池
FG 集群调度池
GO 协程池
K8s 调度
Go runtime 的 GMP 调度
操作系统调度
UB 统一内存池
参考文献:
数据库连接池 https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5%E6%B1%A0/1518538
评论