同步操作将从 jackyzux/PhaService 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Phalcon有着强大的性能同时又具备完整的MVC模式,
Swoole也具备在Phalcon之外的其他能力,如果把两者无缝的结合,
一定是一个不错的案例.
所以本项目 同时支持 Nginx+Phalcon 与 Swoole+Phalcon,
如果使用Nginx做负载均衡,可以做到无缝衔接,有Nginx+php-fpm的稳定,
同时也能享受Swoole对于API的超高性能.
本案例可以作为系统服务使用, 也可以做Restful开发使用,作为Web使用更是毫无问题.
使用 wrk 做的的压测, 在MBP上的结果:
wrk -c10000 -d10s --latency http://127.0.0.1:8080/testRunning 10s test @ http://127.0.0.1:8080/test
2 threads and 10000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 38.66ms 50.01ms 266.35ms 81.83%
Req/Sec 12.97k 1.54k 16.65k 88.17%
Latency Distribution
50% 11.53ms
75% 68.33ms
90% 116.48ms
99% 183.72ms
242375 requests in 10.06s, 36.59MB read
Requests/sec: 24104.01
Transfer/sec: 3.64MB
非常不错的结果.
** Web服务兼容Nginx+PHP-FPM模式,可以参考Phalcon的Nginx配置.
依赖:
Ubuntu 16.04LTS/18.04LTS
PHP: 7.0+, 推荐 7.2或以上
Beantalkd 队列处理依赖
php扩展 Phalcon 3.x+
php扩展 Swoole 2.x+
php扩展 Redis
php扩展 Pdo,Pdo MySQL
####初始化
composer install -o
使用Swoole的HttpServer开启服务: 建议使用Nginx做负载均衡,使PHP-FPM可以和Swoole的HttpServer同时提供服务.
./serve start
可以使用sys/GenSystemctlService.php可以生成systemd service文件, 根据提示安装成服务.
cd sys
php GenSystemctlService.php
在项目的/目录下,建立空文件 .development
或 .testing
则指定里开发环境与测试环境, 没有文件为生产环境. 文件同时存在, 有限开启开发环境.
#开发环境
rm .testing && touch .development
#测试环境
rm .development && touch .testing
#生产环境
rm .development .testing
Web与Cli分开配置,配置文件位于:
/app/config/config.php
/cli/config/config.php
###多进程Task任务处理
该服务会在任务处理完成后,持续拉起服务,所以可以实现类似php-fpm的特点, 任务处理指定次数后退出任务,服务会自动拉起服务.
具体可以参考/cli/tasks/MailSenderTask.php, 复写 RealWork 函数进行真实的任务处理即可, 调用方式:
#查看帮助信息
./run mailsender -h
#参数 6 为开启6个子进程同时处理任务
./run mailsender 6
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。