zhttp-用来做http web服务的异步非阻塞轻量级框架
开发交流群:384013097
新手入门项目,附有源码和线上实例(主要用于介绍)
最新框架依赖环境docker镜像已经发布,拉取方法(内置mongodb扩展、memcached扩展、swoole扩展1.9包括异步redis)
docker pull keaixiaou/zhttp:1.0
使用手册(待完善)
##协议
MIT license
优势
1.框架基于swoole开发,并且一些IO操作底层已经封装为异步,性能极其强悍。
2.框架底层已经封装好异步,内置mysql、redis连接池,只需要在调用的时候在前面加yield,近乎同步的写法,却是异步的调用,并且无需关注底层实现,连接数超等问题,使用非常简单。
注意事项
1.框架最新加入协程+mysql连接池,非阻塞的mysql查询大大提高了框架应对请求的吞吐量
2.php版本需要7.0+
3.swoole版本1.8.*
4.如果用到异步redis,需要安装hiredis,安装教程:http://wiki.swoole.com/wiki/page/p-redis.html
##安装依赖包
composer install
1.没有安装composer的先安装composer
2.不会composer或者不喜欢composer的可以直接去我另一个资源库下载框架依赖,地址:https://github.com/keaixiaou/zphp
##运行zhttp
本框架只支持http模式:
运行:
cd 到根目录
php webroot/main.php start|stop|restart|reload|status
访问IP:PORT
建议:
如果是静态文件如css、js、image,可以直接用nginx代理
如果是动态请求,最好使用nginx做代理转发
###服务监控图
nginx示例配置:
server {
listen 80;
server_name zhttp.test.com;
root /Users/zhaoye/workspace/zhttp;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
location / {
# 如果要在swoole里获取实际host proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8991;
proxy_http_version 1.1;
proxy_set_header Connection "keep-alive";
}
access_log /usr/local/etc/nginx/logs/zhttp.log;
}
###目录结构
##apps - mvc框架的controllers和service
service 通常的调用服务层
config - 配置文件
library - 对应的全局函数,每个work进程启动的时候会加载这个方法
路由
根据pathinfo访问对应得controller,如ip:port/home/index/