
swoole
iCheney!
一只不正经的程序猿
展开
-
php令牌桶算法实现接口限流
前端每次请求从令牌桶取走令牌,后端匀速向桶内投递令牌,如果前端取到令牌,则说明这次请求有效,否则让前端再次请求或者等待。避免了大量请求下服务器压力过大导致的崩溃问题。令牌桶类:<?phpclass Token{ private $_max; private $_queue; private $_redis; public function __construct() { try { $this->_原创 2020-05-29 22:15:53 · 1230 阅读 · 0 评论 -
yii2利用swoole的http服务器提供高性能接口
先说一下流程:1.编写代码,开启http服务器2.http服务器通过请求过来的url来分发到yii的不同模块的不同控制器的不同方法来处理业务3.进行压测1.新建一个php文件HttpController,代码里面用来统一分发请求代码:<?phpnamespace console\controllers;use yii\console\Control...原创 2020-03-16 14:39:39 · 1119 阅读 · 0 评论 -
利用swoole的websocket编写简单聊天室demo
服务器代码:<?php# 定义clientFds数组 保存所有websocket连接$clientFds = [];# 创建websocket服务$server = new swoole_websocket_server("0.0.0.0", 9300);# 握手成功 触发回调函数$server->on('open', function (swoole_webso...原创 2019-10-28 13:46:40 · 606 阅读 · 4 评论 -
yii在执行swoole的异步服务时如何写日志到文件中,并实时查看写入的日志信息
平时如果要看异步执行完的日志需要kill调swoole进程然后会将日志记录到我们设置的文件中,但是不想每次都去kill进程,然后再重启进程,这样十分繁琐。先看yii手册文档:Class yii\log\Logger所有类|属性|方法|常量继承 yii\log\Logger»yii\base\Component»yii\base\BaseObje...原创 2019-10-25 17:25:07 · 742 阅读 · 0 评论 -
理解swoole,一篇简单易懂的文章
当SWOOLE遇上SERVER前言Swoole终于成功邂逅了PHP,现在要开始它们的奇妙路程了。Server之初通常,我们会把网络系统分为B/S架构和C/S架构,而这里笔者想聊的就是这里提到的S,也就是服务(Server)在干什么?风靡各大高校宿舍的Dota和LOL,主体上可以算是典型的C/S架构的网络系统/软件/应用/程序/What ever这里笔者打算从比较常见的基...转载 2019-10-14 10:50:44 · 1260 阅读 · 0 评论 -
Swoole来实现实时异步任务队列
假如要发100封邮件,for循环100遍,用户直接揭竿而起,什么破网站!但实际上,我们很可能有超过1万的邮件。怎么处理这个延迟的问题?答案就是用异步。把“发邮件”这个操作封装,然后后台异步地执行1万遍。这样的话,用户提交网页后,他所等待的时间只是“把发邮件任务请求推送进队列里”的时间。而我们的后台服务将在用户看不见的地方跑。在实现“异步队列”这点上,有人采用MySQL表或者redis来存放待...原创 2019-05-20 16:54:52 · 1143 阅读 · 1 评论 -
swoole中对websocket的理解
我们目前的大多数应用都是以服务端+接口+客户端的方式去协调工作的,这样的好处在于不论是处在何种终端的情况下,都可以完美的和服务端兼容。这样就轻松实现了MVC各个部分的真正解耦。但是提高程序的友好性还是有很多路要走,其中一个大家都会遇到的就是数据实时更新的问题。比如一个用户在手机上做了添加操作,这时候其他的终端也应该及时显示数据的变化情况。这个对于手机来说还算好办,因为现在的各种推送服务完全可以满足...原创 2019-05-16 18:16:32 · 1701 阅读 · 0 评论 -
swoole中对process的使用
SwooleShell.php:<?php App::uses('AppShell', 'Console/Command');/** * Class SwooleShell * @property KafkaTask $Kafka * @property PermissionMigrateTask $PermissionMigrate */class Swool...原创 2019-05-27 16:46:16 · 1521 阅读 · 0 评论