LaravelS - 基于Swoole加速Laravel/Lumen】的更多相关文章

LaravelS LaravelS是一个胶水项目,用于快速集成Swoole到Laravel或Lumen,然后赋予它们更好的性能.更多可能性.Github 特性 内置Http/WebSocket服务器 多端口混合协议 协程 自定义进程 常驻内存 异步的事件监听 异步的任务队列 毫秒级定时任务 平滑Reload 修改代码后自动Reload 同时支持Laravel与Lumen,兼容主流版本 简单,开箱即用 要求 依赖 说明 PHP >= 5.5.9 推荐PHP7+ Swoole >= 1.7.19 …
这篇文章主要介绍了关于如何使用swoole加速laravel,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 再来复习一下吧,导致 php 慢的各种因素中解析性语言的特性可以说是罪魁祸首,再加上,每次请求完都释放请求时所加载的全部文件,因此也就显得更慢了. 后来我们有了 opcache,使用这个的话,请求时间大概会缩短到原来的一半,但是我们会发现其实花的时间看起来还是很多. 这是为什么呢?原因在于,opcache 只是省去了解析文件的时间,实际运行的时候,我们还是需要去把相同的代码…
1 Laravel的速度瓶颈在哪? 1.1 已有的一些优化方法 1.1.1 laravel官方提供了一些优化laravel的优化方法 php artisan optimize php artisan config:cache php artisan route:cache   1.1.2 使用opcache加速,PHP是个解释型语言执行的时候先得把程序读进来,由Zend引擎编译成opcode.最后Zend虚拟机顺次执行这些opcode完成操作.opcache起到的作用就是缓存opcode,从而减…
Swoole是用于PHP的生产级异步编程框架.它是用纯C语言编写的PHP扩展,它使PHP开发人员可以在PHP中编写高性能,可伸缩的并发TCP,UDP,Unix套接字,HTTP,WebSocket服务,而无需过多了解非阻塞I / O编程和低级Linux内核.你可以将 Swoole视为 NodeJS之类,但适用于PHP,具有更高的性能. 为什么要在 Swoole 上运行 Laravel? 下图展示了 PHP 的生命周期.正如你所看到的那样,当你每次运行 PHP 脚本的时候,PHP 都需要初始化模块并…
主题:使用 Swoole 加速你的 CMS 系统,并实现热更新 关于 Swoole 的简介不再在此赘述,各位可以自行查看官网的文档进行详细的了解. 本文以 MyCms 为例,简要说明 Swoole 结合传统的 CMS 系统进行使用,并实现热更新. CMS系统:MyCms (目前v3.3+以上版本重新编写了对 Swoole 的支持,移除了包swooletw/laravel-swoole. 使用新版本的用户直接安装后修改Nginx配置即可) 集成 Swoole 问题: 1.系统配置更新后无法实时读取…
LaravelS是一个胶水项目,用于快速集成Swoole到Laravel,然后赋予它们更好的性能.更多可能性. 环境 : ubuntu16 + nginx + php7.1 + LaravelS搭建高性能php服务器. 依赖 说明 PHP >= 5.5.9 Swoole >= 1.7.19 推荐最新的稳定版 从2.0.12开始不再支持PHP5 Laravel/Lumen >= 5.1 Gzip[可选的] zlib,用于压缩HTTP响应,检查本机libz是否可用 ldconfig -p|g…
本篇文章给大家带来的内容是关于swoole运行模式加速laravel应用的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一.Swoole Swoole号称重新定义了PHP,它是一个PHP扩展,使得PHP可以使用异步的方式执行,就像node一样,而且还能使用socket,为PHP提供了一系列异步IO.事件驱动.并行数据结构功能.Swoole4支持完整的协程编程模式,可以使用完全同步的代码实现异步程序.PHP代码无需额外增加任何关键词,底层自动进行协程调度,实现异步IO…
项目介绍 MyCms是一款基于Laravel开发的开源免费的自媒体博客CMS系统,适用于个人网站及企业网站开发使用,助力个人开发者知识技术变现 Swoole介绍 Swoole: PHP的异步.并行.高性能网络通信引擎,支持TCP长连接,Websocket,Mqtt等协议.广泛用于手机app.手游服务端.网络游戏服务器.聊天室.硬件通讯.智能家居.车联网.物联网等领域的开发. 安装 Swoole 如果你使用的是宝塔面板,那么在PHP配置面板中安装拓展即可. 其他面板或自建环境,请参照官方安装文档.…
最近看的一个swoole的课程,前段时间被邀请的参与的这个课程 比较有特点跟一定的深度,swoole的实战教程一直也不多,结合swoole构建一个新型框架,最后讲解如何实现分布式RPC的调用. 内容听下来还是蛮有水准的 课程简介: 部分课程截图:   下载链接: https://pan.baidu.com/s/1YQTrFTN4w_6u7UmNVa29IA提取码: i1cx 更多精彩内容:你每先多积累一分,时间越长你与其他人的差距就会越发明显,复利算法了解一下: BAT资深工程师由浅入深分析Tp…
假设我们希望有一台机器A(ip 192.168.1.101)要开放端口6379给用户访问,但可能实际情况是用户无法直接访问到A(ip 192.168.1.101), 但却有一台机器B(ip 192.168.1.100) 可以开放一些其他端口给用户访问,为了让用户通过B(ip 192.168.1.100)能访问到A(ip 192.168.1.101)上6379端口,基于swoole实现的Tcpproxy解决了这个问题! 当然你可以联想到我们家里的内部机器是在外网无法访问的,可正好你有一台云服务器,…
比如 lumen,ConsoleServiceProvider 里面的 register 做了下面的处理: \Laravel\Lumen\Console\ConsoleServiceProvider::register /** * Register the service provider. * * @return void */ public function register() { $this->registerCommands(array_merge( $this->commands,…
解决 Laravel/Lumen 出现 "Please provide a valid cache path" 问题 解决 Laravel/Lumen 出现 "Please provide a valid cache path" 问题 新建项目报错: //错误提示: InvalidArgumentException in Compiler.php line 36: Please provide a valid cache path. 错误提示的出错: // vend…
基于GPU加速的三维空间分析 标签:supermap地理信息系统gisit 文:李凯 随着三维GIS 的快速发展和应用普及,三维空间分析技术以其应用中的实用性成为当前GIS技术研究的热点领域.面对日益庞大的三维数据处理现状,为满足GIS各行业对专业化三维空间分析的实用性需求,SuperMap GIS 7C(2015)提供了丰富且实用的基于GPU图形硬件加速的三维空间分析功能,做到“即时分析.即时完成”的超强性能,具体包括通视分析.可视域分析.动态可视域分析.阴影率统计分析.天际线分析.剖面线分析…
Swoole-Crontab(基于Swoole扩展) 1.概述 基于swoole的定时器程序,支持秒级处理. 异步多进程处理. 完全兼容crontab语法,且支持秒的配置,可使用数组规定好精确操作时间 单中心-多客户端模式,能够横向扩展 web界面管理,增删改查任务,完整的权限控制. 请使用swoole扩展1.8.0+ 2.架构图 3.Crontab配置 介绍一下时间配置 4.开始使用 1.修改配置 2.下载swoole framework框架到本地/data/www/public/ frame…
CabalPHP CabalPHP 是一个基于Swoole的轻量.高效.全异步开源框架. 亮点 全异步单机超高性能,轻松分布式部署 支持HTTP.TCP.websocket等多种协议 完善数据库引擎,简单高效(其他swoole框架几乎没有哦) 易于学习,开发效率高,简单高效的数据库引擎 使用IDE(Sublime Text/VSCode/PhpStorm等)有完整的代码提示 适用场景 微服务架构的RPC服务开发 前后分离的应用(RESTful)API接口开发 即时通讯服务端开发 传统的Web网站…
这两天,又一全栈式 Swoole 协程框架面世了 - hyperf,实现思路是我内心点了赞同的,就集成现有 PHP 生态优质组件到 Swoole 的协程中来. 有人想到,为什么不是 Swoole 集成到 Web 框架中,当然已经有案例了,如果是老项目这么做是可以通过常驻内存提升性能的,并且利用到 Swoole 一些特性. 但是天花板也正是传统 Web 框架的限制,它们运行组件不是为常驻内存和协程而设计的,所以99.9%无法透明支持 Swoole 的,这是历史使然. php-fpm 是多进程模型打…
这里描述个基于swoole的websocket 匿名群聊 UI <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>即时通讯系统</title> <link rel="stylesheet" href="css/style.css" media="screen" type="…
https://github.com/kcloze/swoole-jobs 一个基于swoole的作业调度组件,已经实现了redis和rabitmq队列消息存储.参考资料:swoole https://wiki.swoole.com/wiki/page/1.html rabitmq https://www.kancloud.cn/yunxifd/rabbitmq/96997 RabbitMQ与Redis队列对比: http://www.cnblogs.com/chinaboard/p/38195…
房产基于Swoole的PHP RPC框架设计 https://mp.weixin.qq.com/s/XSrKEQ-0q4DvjOGTIwYYzg…
基于docker搭建laravel项目 公司PHP项目是Laravel框架写的,目前环境需要通过docker来部署一下.网上学习了一下相关知识.整理后做一个笔记.用到定时任务crontab与进程管理supervisor. 主要参考项目: <docker完美搭建laravel运行环境>参考1 项目时间比较久,其中作者提供的镜像与我项目版本不同.我更新了其中PHP版本为php-fpm7.4. 项目地址: docker-php-laravle 结合您自己实际项目修改相关配置.我未提交项目目录及文件.…
PHP Composer包开发 基于Composer的Laravel扩展包开发工作流 实现laravle项目的文件管理,添加文件/文件夹,删除文件,查看代码/文件(代码支持缩进,支持语法高亮) composer 项目地址:https://packagist.org/packages/wuqb/laravel-codeview github 项目地址: https://github.com/wuxiumu/code-management 1.在项目下执行 mkdir packages // 创建p…
Swoole 是为 PHP 开发的生产级异步编程框架. 他是一个纯 C 开发的扩展, 他允许 PHP 开发者在 PHP 中写 高性能,可扩展的并发 TCP, UDP, Unix socket, HTTP, WebSocket 服务, 而不需要拥有太多的非阻塞 I/O 编程和低级别的 Linux 内核知识. 你可以把 Swoole 想象成 NodeJS, 但对于 PHP 来说将有更高性能 文章转自微笑大神博客:https://badwritten.cn/article/detail?operate…
在此前的另外一篇文章讨论过 opcache:php 性能优化之opcache - 让你的php性能提升 50% 再来复习一下吧,导致 php 慢的各种因素中解析性语言的特性可以说是罪魁祸首,再加上,每次请求完都释放请求时所加载的全部文件,因此也就显得更慢了. 后来我们有了 opcache,使用这个的话,请求时间大概会缩短到原来的一半,但是我们会发现其实花的时间看起来还是很多. 这是为什么呢?原因在于,opcache 只是省去了解析文件的时间,实际运行的时候,我们还是需要去把相同的代码又跑一遍,具…
需求分析 网站上实现一对一即时沟通,能查看聊天记录以及离线留言,新消息提醒. 核心技术 html5的websocket,php的swoole扩展http://wiki.swoole.com/ 数据表 CREATE TABLE `msg` ( `id` ) NOT NULL AUTO_INCREMENT, `content` ) NOT NULL DEFAULT '' COMMENT '内容', `tid` ) ' COMMENT '接收用户id', `fid` ) ' COMMENT '发送用户…
为避免浪费时间--先上解决方案 在Model中重写 CREATED_AT 和 UPDATED_AT 两个类常量就可以了,这两个常量分别是创建时间和更新时间的字段名. =============================================== 以下只是简单的介绍和十分逗比的解决过程 Laravel 是十分强大的全栈PHP框架,其衍生品 Lumen 则更加专精一些,官方将其定位在微服务和API开发领域. Lumen 也是我目前采用的 API 开发框架,作为 Laravel 的子集…
背景 由于PHP不支持多线程,但是作为一个完善的系统,有很多操作都是需要异步完成的.为了完成这些异步操作,我们做了一个基于Redis队列任务系统. 大家知道,一个消息队列处理系统主要分为两大部分:消费者和生产者. 在我们的系统中,主系统作为生产者,任务系统作为消费者. 具体的工作流程如下: 1.主系统将需要需要处理的任务名称+任务参数push到队列中. 2.任务系统实时的对任务队列进行pop,pop出来一个任务就fork一个子进程,由子进程完成具体的任务逻辑. 具体代码如下: /** * 启动守…
消息服务器使用socket,为避免服务器过载,单台只允许500个socket连接,当一台不够的时候,扩充消息服务器是必然,问题来了,如何让链接在不同消息服务器上的用户可以实现消息发送呢? 要实现消息互通就必须要让这些消息服务器本身能互通,想了两个方式,一种是消息服务器之间交叉链接,另一种是增加一个特殊的消息服务器,这个消息服务器不对外开放,只负责消息转发和推送. 下列测试不考虑防火墙等.仅测试可行性和效率. 测试环境 消息服务器 192.168.0.201 9501 192.168.0.202…
php原生:http://www.w3school.com.cn/php/php_ref_array.asp Lumen方法:https://laravel.com/docs/5.6/helpers Collections类方法:https://laravel.com/docs/5.6/collections PHP原生 array_column()从二维数组取对应键的值,组成新数组 <?php // 表示由数据库返回的可能记录集的数组 $a = [ [ 'id' => 5698, 'firs…
使用场景 在引用第三方包的时候,对第三方包有改动需求,需要将代码放在自己的仓库:并且自己的其他项目也有需求引用自定义的第三方包:甚至自己会发布修改后的第三方包: 读完本文你讲获得: Git Submodule的基本使用 从本地加载第三方包 从自定义仓库地址获取扩展包 快速创建第三方包 本文是在我自己想要创建一个基础第三方包的时候记录下的操作步骤 1.利用git submoudle在已有项目中使用第三方包 通常利用composer安装的包均在vendor目录下,并且仓库地址均指向第三方包作者的仓库…
随着微信的普及,扫码登录方式越来越被现在的应用所使用.它因为不用去记住密码,只要有微信号即可方便快捷登录.微信的开放平台原生就有支持扫码登录的功能,不过大部分人还是在用公众平台,所以扫码登录只能自行实现.这里基于微信公众平台的带参数临时二维码,并且结合 Swoole 的 WebSocket 服务实现扫码登录.大体流程如下: 客户端打开登录界面,连接到 WebSocket 服务 WebScoket 服务生成带参数二维码返回给客户端 用户扫描展示的带参数二维码 微信服务器回调扫码事件并通知开发者服务…