自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

a07061625的博客

基于swoole+yaf实现PHP的分布式高性能框架

  • 博客(15)
  • 收藏
  • 关注

原创 swoole基础教程-15.集成apidoc

上节课我们讲完了面向切面编程,这节课我们来集成apidoc,在前后端分离的项目中,前端开发和后端开发经常需要对接接口,协商接口参数和返回数据,为了降低前后端沟通协商的时间成本和精力,往往就需要生成相应的接口文档,接口文档的形式有多种,各自适用于不同的情况,在这里,我们用的是apidoc集成后的代码结构commonIndexapidoc.json安装apidoc生成文档...

2019-09-11 09:41:05 208

原创 swoole基础教程-14.面向切面编程

上节课我们集成了数据校验和接口签名,这节课我们来集成切面,由于本人能力有限,集成的切面只是个基础版本,并没有java中切面功能那么强大集成切面后的代码结构BaseAspectTestBaseControllerAspectAfterPluginAspectBeforePluginsy_api/Index测试...

2019-09-10 16:51:31 153

原创 swoole基础教程-13.数据校验与接口签名

上节课我们完成了服务通信,已经大致上完成了课程的主要目的,但是作为一个框架来说,这还只是刚开始的一个步骤而已,框架还需要很多其他功能的补充,今天这节课来完成的功能是数据校验在api接口中,我们经常需要接收外部传递过来的数据,对于外部传递过来的数据都是不可信的,也许你要求传递个整数,外部就给你传个字母,这个时候就需要用到数据校验,过滤不合要求的数据,下面我们来做的就是这个事情代码结构Sim...

2019-09-10 12:10:06 210

原创 swoole基础教程-12.服务通信

上节课我们已经完成了添加rpc服务,这节课我们来完成api和user模块之间的服务通信,在真实的业务场景中,前端都是通过域名发送请求,请求最开始是由api模块来接收处理的,并且需要的话,经过api模块转发给user模块,所以,对于一个请求来说,api模块是一定会访问到的,user模块等却不一定,根据请求的不同而不同,所以请求之间只会由api模块流向user等其他模块,不会先到user模块好了,废...

2019-09-09 15:31:25 199

原创 swoole基础教程-11.添加Rpc服务

到上节课为止,我们已经基本上把Http服务的事情完成了,但是对于分布式的系统,仅仅有Http服务是不够的,还需要有Rpc服务来配合,那么这节课我们开始讲解Rpc服务的搭建集成Rpc后的代码结构SyPackRpcServerToolProjectconfig_projectsyserver.ini测试至此,Rpc服务已经搭建完成,就差模块通信的处理了...

2019-09-09 12:00:53 248

原创 swoole基础教程-10.集成yaf(二)

上节课我们已经将yaf框架和swoole框架融合,完成了至关重要的一个环节,但是,对于一个框架来说,这还远远不够,yaf框架融合后的封装性还远远不足,我们还需要进行再次封装,满足业务开发的需要,降低业务的使用难度,下面开始继续封装yaf框架封装后的代码结构CheckConnectPluginFinishServicePluginMethodExistPluginSimpleRo...

2019-09-07 17:26:51 669

原创 swoole基础教程-9.集成yaf(一)

上节课我们对Http服务进行了优化,扩充了框架和项目管理方面的功能,这节课我们正式开始集成yaf,将yaf作为业务框架集成进swoole,下面开始讲解集成后的代码结构BaseServerHttpServerhelper_definesIndexBootstrapapplication.iniIndexDao测试至此,我们已经将swoole和yaf打通,...

2019-09-07 15:14:56 441

原创 swoole基础教程-8.Http服务优化

上节课我们完成了缓存redis集成到框架中,如果有信心,可以自己尝试集成memcache缓存到框架中来,框架到目前为主,已经和swoole官网的代码完全不一样了,为了后续框架开发的扩展性,可维护性,我们需要对现有的Http服务做一次优化,提升代码的健壮性,为后续的开发打下良好的基础优化后的代码结构BaseServerHttpServer框架和项目代码分离project...

2019-09-07 10:28:46 200

原创 swoole基础教程-7.集成redis缓存

上节课我们集成了日志组件,方便了接口调试以及排查错误,这节课的目的是集成redis缓存,在分布式系统中,redis是属于必用的缓存组件,在很多场景中都有应用,现在,就让我们来完成这个目的.改造后的代码结构CacheSimpleFactoryRedisSingletoncaches.iniHttpServer测试至此,缓存redis集成到框架完毕...

2019-09-06 21:03:30 177

原创 swoole基础教程-6.集成日志组件Seaslog

上节课我们完成了Http服务负载均衡,这节课我们的目标是集成日志,在一个框架中,日志绝对是最重要的组成部分之一,没有日志也就无法定位问题的根源,无法定位问题根源就无法真正的解决问题,因此,在完善框架的时候,我们最先来完善日志组件目前开源的日志组件有很多,我这里选择的是seaslog,首先,这个组件是c扩展,相比其他的PHP组件,拥有更好的性能,其次,它支持多种日志记录方式,自定义日志格式,甚至可...

2019-09-06 18:21:52 539

原创 swoole基础教程-5.Http服务负载均衡

上节课我们完成了服务管理的脚本化和配置文件化的工作,同时,在上节课遗留下一个问题,原先可以通过8800端口访问服务,经过上节课的改造以后反而不行了,这节课我们来解决这个问题,好了,废话不多说,现在开始讲解nginx.confdefaultserver.conf(用于防止服务器被域名恶意解析)demoapi.confdemoapi.serverdemoapistatic...

2019-09-06 17:13:08 201

原创 swoole基础教程-4.服务脚本化管理

上节课将swoole官网上的样例代码从面向过程转变成面向对象的方式了,完成了第一个小目标,但是在使用过程中,我们注意到了两点不足,1.配置是写死到代码中,对于项目管理来说非常不友好,每次配置有变动需要修改代码 2.服务启动比较笨拙,对于项目管理来说非常不方便,因此,为了后续开发的便捷,我们需要更新改造服务管理脚本在改造服务管理脚本之前,先来整理下思路,由结果反推实现方式项目相关的数据要做成配...

2019-09-06 16:22:37 272

原创 swoole基础教程-3.由面向过程编程转为面向对象编程

上节课我们写了个简单的demo并运行起来了,但是代码还是面向过程的方式编写的,这节课开始,我们开始将代码由面向过程的方式转变为面向对象的方式,另外,因为本课程的其中一个主要目的是结合swoole和yaf两个框架,所以在代码中,有很多以sy开头的内容,取swoole和yaf两个单词的首字母,作为框架的独特前缀,以此和其他的框架或者公共组件区分开来改造后的代码结构BaseServerHtt...

2019-09-06 10:45:25 424

原创 swoole基础教程-2.入门

从这节课程开始,正式进入到swoole学习,swoole是什么,能做什么事情,在它的官网上都有介绍,我就在这里不多说废话,首先,根据官方提供的文档以及生成帮助文件的项目,来写第一个demo,详细代码在简介中的github地址上有,后续不做累述开放服务器端口8800注: 如果你使用的是阿里云ECS服务器,还需要同时在安全组开放对应的端口生成swoole帮助文档,方便IDE的自动提示等功能...

2019-09-04 20:30:20 470

原创 swoole基础教程-1.简介

大家好,本课程是为了帮助对于swoole有兴趣的入门者能够更快的熟悉和掌握swoole,同时也是对自己学过知识的回顾和强化,同时希望通过本人的抛砖引玉,能够让更多人有所收获.本课程的目的主要有两个:掌握swoole的基础用法基于swoole实现RPC调用在完成课程目标的过程中,因为维护管理等方面的原因,涉及到了nginx,lua,shell,linux系统等多个方面的知识,希望读者自行...

2019-09-04 13:29:54 316 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除