zan php demo,Zan 连接池
一、设计背景
Zan是基于PHP协程的网络服务框架,提供最简单的方式开发面向C10K+的高并发HTTP服务或SOA服务。
核心特性:
1. 基于 yield 实现了独立堆栈的协程
2. 类似于 Golang 的并发编程模型实现
3. 基于 swoole 提供非阻塞I/O服务
4. 连接池支持
5. 类似 Golang 的defer机制解决由于异常导致的资源未释放、锁未释放的问题
6. .......等
连接池作为其核心特性之一,内置了MySQL、Redis、syslog等多种组件。
二、设计结构
Zan连接池实现基于PHP协程,在服务启动时通过ConnectionInitiator进行初始化,将初始化好的connection对象被放入连接池中,connection中有操作连接的基本方法。
进行初始化时可根据系统需要进行参数配置,示例如下:
return [
'default_write' => [
'engine'=> 'mysqli',
'host' => '127.0.0.1',
'user' => 'user',
'password' => 'password',
'database' => 'db',
'port' => '3306',
'pool' => [
'heartbeat-time' => 35000,
'init-connection'=> 5,
'maximum-connection-count' =>20,
'minimum-connection-count' =>1,
],
]
];
连接池的使用也非常方便。
$connection = (yield ConnectionManager::getInstance()->get($poolName));
性能很好,与传统的方式一个fmp需要建立一个连接相比,Zan连接池常驻内存,资源可共享,存取速度快,性能远远高于传统方式。
三、特点
使用简单。
可动态增减连接。
性能高。
可监控连接池状态。
四、源码
对此连接池感兴趣的朋友,可以在github查看文档和源码,欢迎共同探讨。
QQ群: 115728122
Zan - Zan框架
zan-doc - Zan PHP 开发者文档
zan-installer - Zan PHP 脚手架工具
zanhttp - Zan PHP HTTP demo
欢迎关注我们的公众号
zan php demo,Zan 连接池相关推荐
- zan php demo,zan框架的连接池实现
###一.设计背景 Zan是基于PHP协程的网络服务框架,提供最简单的方式开发面向C10K+的高并发HTTP服务或SOA服务. 核心特性: 基于 yield 实现了独立堆栈的协程 类似于 Golang ...
- zan php demo,ajax+php+mysql实现无刷新点赞功能
从动态图看出来,点击赞的按钮的时候,旁边的赞数量在无刷新地增加.打开数据库也能看到赞数量更新了. 原理就是通过ajax异步提交数据给数据库. 首先前端页面就是一个按钮和赞数量. 数据库名,test,表 ...
- springboot集成mongodb 连接池 多数据库源,源码demo
上一篇介绍了 springboot集成mongodb 多数据库源切换 源码demo 开发环境: windows 7 idea windows64 mongodb 如果没安装运行 点这里 navicat ...
- JDBC数据源连接池(1)---DBCP
何为数据源呢?也就是数据的来源.我在前面的一篇文章<JDBC原生数据库连接>中,采用了mysql数据库,数据来源于mysql,那么mysql就是一种数据源.在实际工作中,除了mysql,往 ...
- 使用 TFDConnection 的 pooled 连接池
从开始看到这个属性,就一直认为他可以提供一个连接池管理功能, 苦于文档资料太少, 甚至在帮助中对该属性的使用都没有任何介绍,如果你搜索百度,也会发现基本没资料. 最后终于在其官方网站看到了其完整相关的 ...
- 有没有想过,手写一个连接池?
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:矢泽妮可 来源:http://h5ip.cn/F7US 连接池的使命! 无论是线程池还是d ...
- jndi连接池链接mysql_使用容器提供的数据库连接池--JNDI用法
现在,数据库的连接没有用到连接池几乎很少很少,每个项目组都可能有自己的数据库连接池组件,各容器提供商也提供了各自的数据库连接池,下面介绍一下tomcat和weblogic使用JNDI的数据库连接管理. ...
- Redis进阶-JedisCluster初始化 自动管理连接池中的连接 _ 源码分析
文章目录 Pre Code 初始化 槽计算 无需手工调用close方法 Pre Redis进阶-Redis集群原理剖析及gossip协议初探 集群原理部分 简单的提了下Jest是如何实现Redis C ...
- 实现AIDL接口的Binder连接池
Binder作为AIDL通信的核心, 在使用中经常需要重复利用, 动态管理AIDL接口. Binder连接池的主要作用是把Binder请求统一发送至Service执行, 即动态管理Binder操作, ...
最新文章
- mobile_numen_3
- MongoDB -- Error: unclean shutdown detected
- SpringCloud实战5-Feign声明式服务调用
- cocos2d-x游戏开发(五)神奇的自动释放
- python tempfile cleanup_python tempfile 模块---生成临时文件和目录
- 用node-webkit开发多平台的桌面客户端
- JavaScript 的 switch 条件语句
- Pandas DataFrame GroupBy.Apply
- java 一元线性回归_Java中的多元线性回归
- android 播放3gp音频,Android的Media(录音,播放音乐,播放视频等)
- 2021-10-13
- 0627-TP整理三(对表的操作,数据的显示)
- bt磁力链接转换种子中的问题
- 西门子smart200 圆弧插补 整合画图程序 2轴3轴
- 原生select下拉框样式修改:去除聚焦的黄色边框样式
- 机器学习----深刻理解高斯过程回归
- Java培训机构可靠吗?
- 网络时代人物标签(两种)
- DellR720安装系统不能正常进入系统
- pyspark入门---机器学习实战预测婴儿出生率(二)使用ML库