(1) zys 高性能服务框架 -基于 yaf 和 swoole 的高性能服务框架 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区

核心特性

1.基于swoole提供分布式服务器通讯服务

2.基于thrift提供rpc远程调用服务

3.基于HTML5提供在线网络直播平台服务

4.基于swoole提供同步异步数据库连接池服务

5.基于swoole提供异步任务服务器

6.基于vmstat提供服务器硬件实时监控服务

7.基于yac、yaconf提供共享数据、配置服务

8.基于zqf提供高并发计数器、红包、二维码服务

9.很好的支持网页版console的shell服务

服务启动

需要php以cli模式运行/server/server.php

php server.php start

php server.php stop

php server.php restart

composer 安装

{
"require": {
"qieangel2013/zys": "0.1.3"
}
}

分布式服务器通讯服务

建立多个服务器之间进行数据通信服务,服务自动连接在线服务器,支持热拔,启动服务后自动连接,无需人为干预

注意事项:

需要在conf/application.conf里配置端口和监听、日志等

需要有一个redis服务器,并且分布式服务器都能连接redis

web端可以直接调用服务

使用如下

//注意:type为sql、file,要是需要别的功能,自己定义

$sql = array('type'=>'sql','data'=>'show tables');

var_dump(distributed::getInstance()->query($sql));

本地访问:http:/localhost/index/distributed/

架构图

[](https://github.com/qieangel2013/yaf/raw/master/public/images/jg.png)

[jg.png

](https://github.com/qieangel2013/yaf/raw/master/public/images/jg.png)

执行结果如下

[

dis1.png

](https://github.com/qieangel2013/yaf/raw/master/public/images/dis1.png)[

dis2.png

](https://github.com/qieangel2013/yaf/raw/master/public/images/dis2.png)

thrift的rpc远程调用

本地访问http://localhost/index/rpc (返回0表示成功)

数据库连接池使用方法

服务文件在/server/mysql/DbServer.php

简单地封装文件在/application/library/mysql/dbclient.php

配置在conf/application.ini中

;数据库连接池配置

DbServer.async=true //配置是同步执行还是异步执行,默认不配置代表异步执行,同步执行设置为false

DbServer.multiprocess=false //配置是否启用多进程,默认不配置代表单进程阻塞模式,多进程模式要设置为true

DbServer.pool_num=20 //配置连接池mysql的数量

DbServer.port=9501

DbServer.logfile="/server/log/DbServer.log"

DbServer.localip="192.168.2.13"

使用方法:

$dbclient=new mysql_dbclient;

//print_r($data);

for ($i=0; $i <100 ; $i++) {

$dbclient->query("INSERT INTO user(name) VALUES('$i')");

//echo "INSERT INTO user(name) VALUES('$i')";

}

$data=$dbclient->query("select * from user");

$dbclient->close();

print_r($data);

exit;

数据库连接池多进程执行如下

[

multiprocess.png

](https://github.com/qieangel2013/yaf/raw/master/public/images/multiprocess.png)

swoole实现简单的视频直播(可以实时传音频、视频、聊天)

录制视频页面 http://localhost/index/swoolelivecamera

接受视频页面 http://localhost/index/swoolelive

[

testlive.png

](https://github.com/qieangel2013/yaf/raw/master/public/images/testlive.png)

vmstat服务器监控

本地访问http://localhost/vmstat/

执行如下:

[](https://github.com/qieangel2013/yaf/raw/master/public/images/vmstats.png)

[vmstats.png

](https://github.com/qieangel2013/yaf/raw/master/public/images/vmstats.png)

yac、yaconf提供共享数据、配置使用如下

需要安装php扩展yac、yaconf

//注意:需要安装yaconf扩展,并且yaconf.directory=/tmp/yaconf 必须在php.ini里设置,不能动态加载

echo Yaconf::get("conf.zqf");

//注意:需要安装yac扩展,用于存储共享变量,下面的实例作为高并发计数器

$yac = new Yac();

$count=$yac->get('zqf');

if(!$count){

$yac->set('zqf', 1);

}else{

$yac->set('zqf', $count+0.5);

}

echo $count;

高并发计数器、红包、二维码使用如下

需要安装php扩展zqf

首先安装php扩展zqf.so

phpize来安装

然后在php文件调用

dl('zqf.so');或者phpini里加载([https://github.com/qieangel2013/zqf

$obj=new zqf();

$counter= $obj->autoadd(0,1,0);(声明只针对多线程)

echo $counter;

红包第一个参数是红包总额,第二个人参数红包数量,第三个参数默认代表拼手气红包,设置为1的话为普通红包

拼手气红包

$hongb= $obj->hongbao(10,8);或者$hongb= $obj->hongbao(10,8,0);返回数组为Array ( [0] => 1.33 [1] => 1.02 [2] => 1.28 [3] => 0.44 [4] => 1.37 [5] => 0.81 [6] => 1.81 [7] => 1.94 )普通红包,每个人数额一样设置第三个参数

$hongb= $obj->hongbao(10,8,1);返回数组为Array ( [0] => 1.25 [1] => 1.25 [2] => 1.25 [3] => 1.25 [4] => 1.25 [5] => 1.25 [6] => 1.25 [7] => 1.25 )

var_dump($hongb);

$obj->savefile('https://www.baidu.com/s?wd=昌平香堂','./test.png',500);第一个参数是url,第二参数是保存路径,第三个参数是二维码长或者宽;%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%8F%82%E6%95%B0%E6%98%AFurl%EF%BC%8C%E7%AC%AC%E4%BA%8C%E5%8F%82%E6%95%B0%E6%98%AF%E4%BF%9D%E5%AD%98%E8%B7%AF%E5%BE%84%EF%BC%8C%E7%AC%AC%E4%B8%89%E4%B8%AA%E5%8F%82%E6%95%B0%E6%98%AF%E4%BA%8C%E7%BB%B4%E7%A0%81%E9%95%BF%E6%88%96%E8%80%85%E5%AE%BD)

$obj->savefile('https://www.baidu.com/s?wd=昌平香堂','./test.png',500,1);第一个参数是url,第二参数是保存路径,第三个参数是二维码长或者宽,第四个参数是决定是否透明,默认是不透明的;%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%8F%82%E6%95%B0%E6%98%AFurl%EF%BC%8C%E7%AC%AC%E4%BA%8C%E5%8F%82%E6%95%B0%E6%98%AF%E4%BF%9D%E5%AD%98%E8%B7%AF%E5%BE%84%EF%BC%8C%E7%AC%AC%E4%B8%89%E4%B8%AA%E5%8F%82%E6%95%B0%E6%98%AF%E4%BA%8C%E7%BB%B4%E7%A0%81%E9%95%BF%E6%88%96%E8%80%85%E5%AE%BD%EF%BC%8C%E7%AC%AC%E5%9B%9B%E4%B8%AA%E5%8F%82%E6%95%B0%E6%98%AF%E5%86%B3%E5%AE%9A%E6%98%AF%E5%90%A6%E9%80%8F%E6%98%8E%EF%BC%8C%E9%BB%98%E8%AE%A4%E6%98%AF%E4%B8%8D%E9%80%8F%E6%98%8E%E7%9A%84)

网页版console的shell使用如下

本地访问http://localhost/console

交流使用

zys框架交流群:337937322

License

Apache License Version 2.0 see http://www.apache.org/licenses/LICENSE-2.0.html

项目地址

https://github.com/qieangel2013/zys


Original url: Access
Created at: 2018-12-21 10:59:08
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论