上QQ阅读APP看书,第一时间看更新
1.4 本章小结
春秋战国时期,有位神医被尊为“医祖”,他就是扁鹊。一次,魏文王问扁鹊说:“你们家兄弟三人,都精于医术,到底哪一位最好呢?”扁鹊答:“长兄最好,中兄次之,我最差。”文王又问:“那么为什么你最出名呢?”扁鹊答:“长兄治病,是治病于病情发作之前,由于一般人不知道他事先能铲除病因,所以他的名气无法传出去;中兄治病,是治病于病情初起时,一般人以为他只能治轻微的小病,所以他的名气只及本乡里;而我是治病于病情严重之时,一般人都看到我在经脉上穿针管放血,在皮肤上敷药等大手术,所以以为我的医术高明,名气因此响遍全国。”
本章介绍的例子,我没有高明地做好事前控制、事中控制,而是陷入在事后对严重问题不断地“穿针放血、敷药刮骨”等大手术般的操作中,希望能够让你对于“连接怎么调优”有一点感觉。
但是通过这个例子,大家应该可以看到,TCP尤其是TIME_WAIT的调优其实是相对比较复杂的,且是一项耗时耗力的工作。此外,就算做了内核级别的调优,随着容器化Docker和K8S的普及,如果新扩容的机器没有带上这些调优过的配置又会让开发人员“踩坑”。
正是由于TCP的复杂性,无池化的数据库程序在高并发的场景下也必然会面对类似的这样或那样的问题。而数据库连接池的出现,将复杂的问题简单化,大大方便了程序员的开发运维工作,进而提升研发效能。接下来,让我们了解一些数据库连接池的背景、原理和理论。