JKDYAF
基于 YAF + SWOOLE 高性能APi框架
我的项目架构
- Linux + Nginx + PHP7 + Mysql + Swoole + Redis + Yaf + Yac
必须
- php 7.x
- mysql
- yaf
- yac
- swoole 5.4.x
- redis
为什么要写这个我的项目?
我最开始用laravel写接口,但家喻户晓laravel框架是一个十分重的,性能更是没得说。 必定有人会问,既然谋求性能,为什么不必当初很火的Golang来写,性能杠杠的。其实我最开始也是想用Golang来写的,然而自己对Golang并不相熟,工夫老本太高。 之所以抉择YAF,无可非议就是因为快,简略。并且作为鸟哥的头等粉丝,必定会抉择YAF。 最开始我也是寻找网上的开源我的项目,但并没有找到一个是我称心的。不是没有用上swoole,就是不反对多模块,都有的就是封装了太多货色。
配置
1. 批改php.ini配置
extension=yaf.so[yaf] yaf.environ=productyaf.cache_config=1yaf.use_namespace=1yaf.library="/path/JkdYafLibrary/" //全局类库的目录门路 extension=yac.so[yac];是否开启yac,1示意开启, 0示意敞开yac.enable=1 ;4M能够失去32768个key, 32M能够失去262144个keyyac.keys_memory_size=4M;申请的最大value内存yac.values_memory_size = 64M ;是否压缩数据ssyac.compress_threshold = '-1' ;敞开在cli下应用yacyac.enable_cli = 1
2. 我的项目app.ini,批改数据库mysql与redis的配置
#数据库配置mysql[db]db.host = "x.x.x.x"db.port = xxxxdb.dbname = "xx"db.username = "xx"db.password = "xxx"db.charset = "utf8mb4"#redis配置[redis]redis.host = "x.x.x.x"redis.port = xxxredis.password = null
3. 我的项目批改jkdyaf.ini配置
ip = "0.0.0.0"port = 9501
启动
php bin/JkdYaf.php php bin/JkdYaf.php -d //守护过程
nginx 配置
server { listen xx; //端口 server_name x.x.x.x; //IP或者域名 index index.html index.htm index.php; root /path/JkdYaf/public/; //我的项目门路 location = /favicon.ico { return 404; expires 30d; log_not_found off; access_log off; } location / { if (!-e $request_filename){ proxy_pass http://127.0.0.1:9501; //必须与我的项目conf下的JkdYaf.ini对应 } } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 1h; }}
后续将会持续增加罕用性能
- mysql连接池
- redis连接池
- 定时工作
- yaconf
- yar
- 队列
github地址: https://github.com/crytjy/JkdYaf
gitee地址: https://gitee.com/jkdcry/JkdYaf