博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
资源的有限性与任务的复杂性之间的矛盾
阅读量:6888 次
发布时间:2019-06-27

本文共 539 字,大约阅读时间需要 1 分钟。

  hot3.png

看了一篇文章, 文章讨论了如何管理Postgres数据库连接,列举了几种方式:

  1. 每个请求一个连接
  2. 连接复用
    1. 连接池
    2. 连接池管理工具

连接池作者提出了三种分别是Session pooling,Transaction pooling,Statement pooling,我们一般常用的是事务连接池,最开始是每个工程自行创建维护与数据库的连接池,但是在工程部署多了之后,部署工程数N,每个工程连接池的连接数量M,所需的总连接数 N*M 会超过数据库所允许的最大连接数,这种情况下我们需要一个总的连接池代理,工程不再直接连接到数据库中,由连接池管理工具来承接所有的连接请求,再请求到数据库中。

其实很多工具的出现都是由于资源的有限性与任务的复杂性之间的矛盾引起的,如果连接是无限的,那我们不需要讨论使用连接池技术,每个连接进来保持一个数据库连接就可以了,还有著名的 问题。我们使用复杂度更低的算法,优化各种场景下的参数,本质上都是由于计算资源的有限性导致的。

对于这个矛盾我们可用的工具有:

  • 算法优化
  • 异步
  • 就近原则(皓哥提到过的边缘计算)
  • 池(对象池,连接池等)
  • 局部性原理(缓存,JIT等)

转载于:https://my.oschina.net/liufq/blog/2248969

你可能感兴趣的文章
drbd状态信息详细说明
查看>>
apache详解
查看>>
PHP技巧分享:7个非常适合初学者使用的实用PHP方法
查看>>
深入浅出处理器(中)_中断
查看>>
闲聊 -软路由的安装
查看>>
ubuntu安装最新docker
查看>>
quartz任务调度整合springMVC学习一
查看>>
Keepalived双主模型实现nginx负载均衡
查看>>
虚拟用户邮件传输
查看>>
查看oracle字符集 版本
查看>>
Linux常用命令——ln
查看>>
记下每一个心灵的瞬间
查看>>
TeamViewer安装企业版以后无法安装个人版的解决办法?
查看>>
决心书
查看>>
python入门:字典
查看>>
面向对象的程序设计-原型模式
查看>>
HTML5+NodeJs实现WebSocket即时通讯
查看>>
ConcurrentDictionary线程不安全么
查看>>
聊下并发和Tomcat线程数
查看>>
javascript for循环里面的settimeout执行问题
查看>>