swoole
swoole
raoxiaoya
这个作者很懒,什么都没留下…
展开
-
Hyperf框架 - 事件机制
事件机制包含三个角色。事件Event定义一个类,一般需要存储一些源数据,因此事件对象应该采用短生命周期的写法,即使用 new UserRegisterd($userId) 的写法。调度器Dispatcher触发事件,一般需要传递源数据到事件对象里,并且使该事件的所有监听者去做相应的处理。监听器Listenner调度器会将事件对象传递到监听器,监听器得到事件并做相应的处理。由于对象的传递是引用传递,且监听器是串行执行的,所以在监听器里面可以改变事件对象的数据,以传递到下一个监听器继续处理,一个事件原创 2020-08-03 17:38:58 · 1812 阅读 · 1 评论 -
Hyperf框架 - 基于Json-Rpc与Consul的微服务搭建
依赖的组件hyperf/json-rpc hyperf/rpc-client hyperf/rpc-server hyperf/service-governance hyperf/consul 以 HTTP协议 为例json-rpc 即为基于json的rpc调用,原理就是 A 和 B 拥有同一套 interface I 的定义,A 就像调用自己的方法一样调用B的方法F,当然F必须是 insterface I 中的方法。保存镜像docker commit -p hyperf raoxi原创 2020-07-31 18:12:44 · 4803 阅读 · 8 评论 -
Hyperf框架 - docker安装宝塔面板监控服务器状态
宝塔面板(推荐)镜像有些庞大,需要80,8888,888,但是功能很好docker pull pch18/baota:lap docker run -tid --name baota --network=host --privileged=true --shm-size=1g --restart always -v ~/data/www:/www/wwwroot pch18/baota:lapnetstat -lntpdocker logs baota Bt-Panel-URL: htt原创 2020-07-27 16:22:32 · 1166 阅读 · 0 评论 -
Hyperf框架 - 使用repository开发模式
创建两个文件App\RepositoryInterface\PhotoRepositoryInterfaceApp\Repository\PhotoRepository<?php/** * ---------------------------------------------------------- * date: 2020/7/22 11:40 * ---------------------------------------------------------- * auth原创 2020-07-26 15:34:02 · 1145 阅读 · 1 评论 -
Hyperf框架 - 定义异常类
定义异常类app/Exception/HttpException.php<?php /** * ---------------------------------------------------------- * date: 2020/7/22 13:59 * ---------------------------------------------------------- * author: Raoxiaoya * -------------------------------原创 2020-07-26 15:21:29 · 1477 阅读 · 0 评论 -
Hyperf框架 - 缓存Cache操作
编写Cache代理类<?php /** * ---------------------------------------------------------- * date: 2020/7/22 17:07 * ---------------------------------------------------------- * author: Raoxiaoya * ----------------------------------------------------------原创 2020-07-26 15:18:28 · 4400 阅读 · 0 评论 -
Hyperf框架 - Redis操作
编写Redis代理类app/Utils/Redis.php<?php /** * ---------------------------------------------------------- * date: 2020/7/22 16:18 * ---------------------------------------------------------- * author: Raoxiaoya * --------------------------------------原创 2020-07-26 15:17:21 · 3727 阅读 · 0 评论 -
Hyperf框架 - 日志操作
编写Log代理类app/Utils/Log.php<?php /** * ---------------------------------------------------------- * date: 2020/7/21 15:24 * ---------------------------------------------------------- * author: Raoxiaoya * ------------------------------------------原创 2020-07-26 15:16:02 · 4939 阅读 · 0 评论 -
Hyperf框架 - 基本操作命令
# 查看全部命令php bin/hyperf.php# 创建中间件php bin/hyperf.php gen:middleware TokenCheckMiddleware# 创建控制器php bin/hyperf.php gen:controller Photo/PhotoController# 创建模型php bin/hyperf.php gen:model photo_activity# 选择连接池创建模型php bin/hyperf.php gen:model user原创 2020-07-26 15:13:48 · 2793 阅读 · 0 评论 -
Hyperf框架 - docker中运行Hyperf项目
为什么要使用hyperf镜像呢?Hyperf对swoole有版本要求,而swoole对当前环境也有要求,可能需要安装多个版本PHP,以及其他配置,与其在你的本地搞来搞去,还不如直接使用docker容器来开发hyperf项目,开箱即用,https://hub.docker.com/r/hyperf/hyperf/tags镜像大小只有30M左右。docker pull hyperf/hyperf:latestdocker images# 下载并运行 hyperf/hyperf 镜像,使用原创 2020-07-26 15:05:36 · 3445 阅读 · 0 评论 -
Hyperf框架 - 进程管理shell版本
hyperf-skeleton/bin/server.sh#!/usr/bin/env bashbasepath=$(cd `dirname $0`; cd ..; pwd)serverfile="bin/hyperf.php"projectName="skeleton"cd $basepath# 停止服务stop(){ # 判断主进程如果存在 if [ -f "runtime/hyperf.pid" ];then cat runtime/hyperf.pid | aw原创 2020-07-26 15:03:06 · 1865 阅读 · 0 评论 -
PHP扩展 -- Linux下扩展加载顺序冲突的解决方案
Linux下php扩展加载顺序冲突的解决方案比如,在安装swoole的时候开启了mysqlnd的支持,那么就需要先加载mysqlnd扩展。查看:php -m | grep mysqlnd安装好swoole后,在php.ini中增加 extension=swoole.sophp -m | grep swoole发现报错:PHP Warning: PHP Startup: Unable ...原创 2020-02-14 17:45:19 · 935 阅读 · 0 评论 -
swoole服务的重启方式
关于swoole服务的重启方式一、程序内的自重启1、$server->reload安全地重启所有Worker/Task进程,确保正在执行的任务执行完成后才重启,master/manager进程不会停止。bool Server->reload(bool $only_reload_taskworkrer = false) $only_reload_taskworkrer 是...原创 2020-02-14 16:19:11 · 4648 阅读 · 1 评论 -
swoole系列之八:进程内连接池的作用和实现
摘自:https://mp.weixin.qq.com/s/nTEkdrHM2bv3aRdj4mEQeg连接池的种类其实也就是连接池的使用场景1、可以是一个独立部署的服务,通过套接字提供代理服务。例如我们的常用的mysqlproxy。2、可以是一个服务内部进程间共享的连接池,这种相对更加轻量,可以理解为项目级别,只对内提供服务。3、进程内的连接池,更加轻量,当前进程内的线程或者协程可以使...转载 2019-10-25 17:16:03 · 1584 阅读 · 2 评论 -
swoole系列之二:phpstorm添加swoole代码提示
先下载代码提示包git clone https://github.com/wudi/swoole-ide-helper.git点击 specify other,选择 swoole-ide-helper 目录即可原创 2019-08-24 11:41:58 · 1636 阅读 · 0 评论 -
swoole系列之三:TCP服务端和异步/同步客户端
一、TCP服务端:创建swoole_tcp_server值需要四步1、构建server对象2、设置运行时参数3、设置事件回调4、启动服务代码如下:<?php/** * +---------------------------------------------------------- * date: 2019\8\25 0025 11:01 * +----------...原创 2019-08-26 22:08:10 · 981 阅读 · 0 评论 -
swoole系列之四:UDP服务端与客户端
一、UDP服务端<?php/** * +---------------------------------------------------------- * date: 2019\8\26 0026 21:23 * +---------------------------------------------------------- * author: Raoxiaoya ...原创 2019-08-26 22:20:02 · 721 阅读 · 0 评论 -
swoole系列之五:server多进程模式与基本模式
在创建swoole server时mode有两个值:SWOOLE_PROCESS:多进程模式SWOOLE_BASE:基本模式(单线程模式)官方解释:https://wiki.swoole.com/wiki/page/353.html总的来说,多进程模式承载能力更强,想象空间更大。当 worker_num = 4 时,查看两种模式的进程多进程模式$server->master_...原创 2019-08-31 18:53:34 · 736 阅读 · 0 评论 -
swoole系列之六:server运行时配置
sever运行时的配置需要在 start 之前来 setserver->set(array);服务器启动后通过$serv->setting来访问Server->set方法设置的参数数组。1、最大连接max_conn => 10000, 此参数用来设置Server最大允许维持多少个tcp连接。超过此数量后,新进入的连接将被拒绝。此参数不要调整的过大,根据机器内存的实...原创 2019-08-31 20:06:45 · 943 阅读 · 0 评论 -
swoole系列之七:swoole结构图
多进程模式基本模式(单线程)原创 2019-08-31 20:25:31 · 948 阅读 · 0 评论 -
php多进程-使用消息队列sysvmsg通讯
在PHP多进程中同样可以sysvmsg扩展来实现消息队列php -m |grep sysvmsg默认会安装这个扩展的。因为我们知道,虽然上下文在子进程里是隔离的,但是主进程中打开的fd和子进程是共享的,可以同时操作。子进程是以抢占式来消费队列,不会重复消费。ftok()可以将一个路径转换成消息队列可用的key值msg_get_queue()第一个参数 是消息队列的key,第二个参数...原创 2019-09-01 12:51:22 · 1732 阅读 · 0 评论 -
swoole系列之一:环境安装部署
1、虚拟机LNMP百度网盘:链接:https://pan.baidu.com/s/1rEfXQY7TYi_rJhYRGdJJ_Q提取码:kwyl下载解压到 D:\vms\centos7.0-lnmp-raw-x86_64修改Vagrantfile文件: config.vm.box = "lnmp" config.ssh.username = "vagrant" conf...原创 2019-08-24 23:05:12 · 398 阅读 · 0 评论