基于 Swoole 构建高性能 Laravel 应用系列 —— 通过 Swoole\Table 实现 Swoole 多进程数据共享

第三方存储媒介 前面我们介绍了基于 Swoole 的 Process 及 Process\Pool 模块在 PHP 中实现多进程管理,但是多进程模式下进程间是相互隔离的,无法共享数据和变量,即便是通过 global 定义的全局或超全局变量,也只是在所属进程中有效,如果要在 Swoole 实现的多进程间共享数据,需要借助第三方存储媒介实现: 数据库:MySQL、MongoDB 缓存:Re...

基于 Swoole 构建高性能 Laravel 应用系列 —— 基于 Process\Pool 通过进程池实现数据库和 Redis 的持久连接

Swoole 进程池的简单实现 从 2.1.2 版本开始,Swoole 开始支持进程池功能,该功能基于 Server 的 Manager 模块实现,可用于管理多个工作进程。相比 Process 实现多进程,Process\Pool 更加简单,封装层次更高,开发者无需编写过多代码即可实现进程管理功能。 下面我们来看一个简单的异步进程池实现示例,通过监听 WorkerStart 事件启动 R...

LaravelPlus —— 基于 Laravel 魔改,为方便实际业务使用

目的 为了减少重复 CURD 和新项目的配置麻烦等问题,(就是为了骗星星:LaravelPlus ) 如: 现有的 infyomlabs/laravel-generator CODE 生成工具虽然好用,但是不太喜欢样式和代码结构。 有些本地,测试,线上的配置需要频繁改动的需要。 多个项目构建引入包,配置扩展等重复性操作 介绍 LaravelPlus 基于 Laravel 增加部分软件...

使用 laravel-repository 扩展包实现对模型类操作的封装

简介 更多关于 Repository 的使用说明,请戳这里Repository文档地址 laravel-repository 提供了基础的 repository 类, 对laravel 的 model 进行了的封装,提供更多的对外的方法,以及更友好的编辑器提示;对代码进行了的分层,repository 负责对外的业务逻辑处理,model 只负责对数据表的字段、属性、查询条件、返回值的...

基于 Swoole 构建高性能 Laravel 应用系列 —— 通过 Process 模块在 PHP 中实现多进程(一):简单的多进程 TCP 服务器实现

Process vs PCNTL 我们知道,通过 PHP 自带的扩展 PCNTL 可以实现基于 Unix 的多进程管理(不能用于 Web 服务器环境),比如 Laravel 自带的队列系列解决方案 Horizon 就会用到这个扩展,但是 PCNTL 有很多坑,比如: 没有提供进程间通信的功能; 不支持重定向标准输入和输出; 只提供了 fork 这样原始的接口,容易导致使用错误。 因此...

基于 Swoole 构建高性能 Laravel 应用系列 —— 基于 Swoole 在 Laravel 中实现异步事件监听及处理

这一篇教程我们直接以 hhxsv5/laravel-s 扩展包为例,演示如何在 Laravel 项目中基于 Swoole 实现事件监听。 系统自带事件 首先我们来看一些扩展包自带的系统事件,这些系统事件又可以进一步划分为 Laravel 应用级别的系统事件以及 Swoole 底层 Worker 进程级别的系统事件。 注:在基于 Swoole HTTP 服务器的系统中,Worker 进程...

Nginx 通过反向代理在多个平台接入上游的客户信息

感谢 美滋滋的nginx 百度上大佬写的blog laravel silber/page-cache 需要实现的功能 在多个不同的平台(可能不在同一个服务器)接入同一个上游的客户信息 客户相关页面实现静态页面 前提 我使用的是laravel框架 所有的客户信息都保存在上游网站http://push.push.do中,每个用户拥有一个唯一的标识(tag),用于识别客户,之后我所说...

基于 Swoole 构建高性能 Laravel 应用系列 —— 基于 Swoole 在 Laravel 中实现异步任务队列

Swoole 异步任务 实现原理 我们知道,PHP 本身的设计是同步阻塞的,不支持多线程和异步 IO,所以当我们执行一些耗时的操作,比如发送广播,或者邮件,如果直接在当前进程中操作,会导致服务器响应变慢,因此要借助一些第三方服务来处理以实现异步功能,比如队列,而 Swoole 作为 PHP 异步网络通信引擎,自然也对异步任务处理提供了支持,其底层的实现原理和常见的异步队列类似:将耗时任务...

基于 Swoole 构建高性能 Laravel 应用系列 —— 基于 Swoole 定时器实现毫秒级任务调度

Swoole 定时器简介 Swoole 提供了异步高精度定时器功能,该功能类似 JavaScript 的 setInterval/setTimeout,粒度为毫秒级,底层基于 epoll_wait(异步)和 setitimer(同步)实现,数据结构使用最小堆。定时器的添加和删除,全部为内存操作,无 IO 消耗,因此性能是非常高的。 需要注意的是,Swoole 实现的定时器与 PHP 自带...

基于 Swoole 构建高性能 Laravel 应用系列 —— 在 Laravel 中集成 Swoole 实现 WebSocket 服务器

在上篇教程中,我们基于 Swoole 实现了简单的 WebSocket 服务器,然后在客户端通过 JavaScript 实现了 WebSocket 客户端,并演示了 WebSocket 的握手和通信过程,今天,学院君将基于 LaravelS 扩展包把 Swoole 集成到 Laravel 项目来实现 WebSocket 服务器,以便于客户端进行 WebSocket 通信从而实现广播功能。...