php进阶到架构之swoole系列教程(三)mysql连接池-

php进阶到架构之swoole系列教程(三)mysql连接池-,第1张

这是关于php进阶到架构之 swoole 系列学习课程:第三节:mysql连接池

学习目标

了解什么是mysql连接池,以及mysql使用场景。能在实际工作使用连接池(数据库连接池,redis连接池等等)解决高并发带来的问题。

场景

每秒同时1000个并发,但mysql数据库同时只支持400个连接,这样mysql就会宕机

解决方案

使用连接池,这个连接池建立了300个与mysql的连接对象,这1000个并发有序地共享连接池里的300个连接。

连接池的使用不但解决了mysql在高并发情况下宕机问题,还额外提高了性能。因为和mysql建立连接,消耗较大。使用连接池只需要连接一次mysql。

永不断开,需要程序常驻内存,这就需要借助swoole实现。

数据库连接池是程序启动时,建立足够的数据库连接,并将这些连接组成一个连接。由程序动态的对连接池中的连接进行申请,使用,释放和回补。

本次我是在Laravel框架中借助Swoole协程来实现对Redis及MySQL连接池的封装,Swoole官方文档中也给出了使用示例,可以参考: https://wiki.swoole.com/#/coroutine/conn_pool

封装前提是已经安装好了PHP的swoole及redis的扩展

本次使用版本介绍:Laravel版本是7+,Swoole版本是4+,Redis版本是6+

对mysql那一端形成一个远程过程的调用,通过XDR数据结构进行解析mysql传来的数据项(RPC也为sun最新提出并后来在linux上默认支持),也就是说像用户登录验证这一块用Mysql的长连接来实现,提高其效率运行相当稳定!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7321256.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存