在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:swooleyaf开源软件地址:https://gitee.com/a07061625/swooleyaf开源软件介绍:SwooleYaf-佳优框架如果你满足以下条件:
那就不要犹豫,不要怀疑,佳优框架(SwooleYaf)就是你的理想选择,使用该框架,你轻易做到以下事情:
SwooleYaf是PHP语言的高性能分布式微服务框架,专注于restful api接口开发,也可适用于前后端分离架构设计下服务端渲染模式的前端项目开发
正式生产环境api接口耗时截图: 项目部署讲解视频链接:https://pan.baidu.com/s/1lwt9hConr8cbVKRxLsltdw 提取码:mqzb 环境搭建脚本请移步至项目 https://github.com/a07061625/swooleyaf_install.git 必要扩展
可选扩展
其他
使用相关(重要,必须首先进行)设置项目核心配置复制helper_load_example.php为helper_load.php并修改相关配置其中:
设置php环境配置复制helper_php_example.php为helper_php.php并修改相关配置 设置swoole启动项目配置复制config_projects_example.php为config_projects.php并修改相关配置其中:
注1: 如果想要运行多个swoole服务,listens数组添加多个并保证端口不冲突即可 框架介绍使用介绍
目录介绍
命令启动服务/usr/local/php7/bin/php helper_service_manager.php -s start-all 关闭服务/usr/local/php7/bin/php helper_service_manager.php -s stop-all 重启服务/usr/local/php7/bin/php helper_service_manager.php -s restart-all 清理僵尸进程/usr/local/php7/bin/php helper_service_manager.php -s kz-all mysql工具/usr/local/php7/bin/php helper_mysql.php -h nginx工具/usr/local/php7/bin/php helper_nginx.php -h 预定义常量
服务管理获取框架概览信息请求地址: http://api.xxx.com/0000 获取php信息请求地址: http://api.xxx.com/0001 性能压测系统配置: etcd启动服务// ip:当前服务器内网或外网ip port:服务监听端口,默认为2379nohup etcd --listen-client-urls http://ip:port --advertise-client-urls http://ip:port >/dev/null & Mongodb文档https://docs.mongodb.com/php-library/ XDebug代码分析
参考链接http://blog.csdn.net/why_2012_gogo/article/details/51170609 可视化工具
XHPROF性能分析使用样例参考demo_xhprof.php文件 代码解耦善用观察者模式来实现业务代码解耦,具体可参考邮件发送模块 接口签名请求地址带上签名参数,统一只在api模块做签名校验,签名参数如下:
定时任务
数据库连接池
图片处理切面支持说明:
环绕切面/** * 登录 * @SyAspect-\SyAspect\Demo */public function loginAction() 前置切面/** * 登录 * @SyAspectBefore-\SyAspect\Demo */public function loginAction() 后置切面/** * 登录 * @SyAspectAfter-\SyAspect\Demo */public function loginAction() 消息处理添加消息数据$handlerType = \SyConstant\Project::MESSAGE_HANDLER_TYPE_SMS_DAYU;$queueType = \SyConstant\Project::MESSAGE_QUEUE_TYPE_REDIS;//具体的数据格式请参考对应消息生产者的checkMsgData方法,对应的命名空间为\SyMessageHandler\Producers$data = [ 'receivers' => [ '12233334444' ], 'template_id' => 'test11233', 'template_sign' => '签名测试', 'template_params' => [ 'code' => '123456' ],];$addRes = \DesignPatterns\Singletons\MessageHandlerSingleton::getInstance()->addMsgData($handlerType, $data, $queueType);//将addRes的数据添加到数据库中,其中msg_id为消息ID,可作为消息处理记录的主键,方便后续查看消息处理的记录以及修改消息处理结果 处理消息数据(消息队列类型必须与添加的时候一致)$queueType = \SyConstant\Project::MESSAGE_QUEUE_TYPE_REDIS;$msgData = \DesignPatterns\Singletons\MessageHandlerSingleton::getInstance()->getMsgData($queueType);if (!empty($msgData)) { try{ $handlerRes = \DesignPatterns\Singletons\MessageHandlerSingleton::getInstance()->invokeMsg($msgData); } catch (Exception $e) { \SyLog\Log::error($e->getMessage(), $e->getCode(), $e->getTraceAsString()); $handlerRes = [ 'code' => 9999, 'msg' => $e->getMessage(), ]; } //通过msgData的msg_id和handlerRes,修改消息处理记录的处理结果} 布隆过滤器初始化修改libs_project/SyTrait/BloomTrait的initFilters方法,可参考现有代码自行初始化好所有的过滤器 添加数据到布隆过滤器$cacheKey = 'test1234';\DesignPatterns\Factories\CacheSimpleFactory::getRedisInstance()->set($cacheKey, 123);\DesignPatterns\Singletons\BloomSingleton::getInstance()->addKey('a01', $cacheKey); 使用布隆过滤器$cacheKey = 'test1234';$existTag = \DesignPatterns\Singletons\BloomSingleton::getInstance()->existKey('a01', $cacheKey);if ($existTag) { $cacheVal = \DesignPatterns\Factories\CacheSimpleFactory::getRedisInstance()->get($cacheKey);} else { echo '非法键名';} |
请发表评论