随笔分类 -  分析easyswoole源码

分析easyswoole3.0源码,consoleTcpService(六)
摘要:前文讲过可以通过配置开启一个tcp服务,叫做consoleTcpservice。EasySwoole\EasySwoole\Core::83行 这个就是一个console的Tcp子服务。然后可以自定义客户端去和主服务通信。 注意了源码注册了一个TcpParser,EasySwoole\EasySwo 阅读全文
posted @ 2018-10-29 16:14 invokermiracle 阅读(928) 评论(0) 推荐(0)
分析easyswoole3.0源码,协程连接池(五)
摘要:连接池的含义,很多都知道,比如mysql的数据库连接是有限的,一开始连接mysql创建N个连接,放到一个容器里,每次有请求去容器中取出,取出用完再放回去。 es3demo里,有mysql的连接池。 回收的话就简单了,把获取到连接池对象塞回去chan->push 示例demo是这样调用的 阅读全文
posted @ 2018-10-26 19:21 invokermiracle 阅读(2608) 评论(0) 推荐(0)
分析easyswoole3.0源码,Trace组件(四)
摘要:前文,我们访问地址的时候服务端会输出类似trace信息。那么原理是什么呢?其实es3已经把这个独立出来作为单独组件了,名字叫做Trace组件 在demo里的调用原理是 这样就连在一起就是,一开始EasySwooleEvent的init回调设置了TrackerManager的生成Token和关闭链路的 阅读全文
posted @ 2018-10-26 19:01 invokermiracle 阅读(767) 评论(0) 推荐(0)
分析easyswoole3.0源码,体验es3(三)
摘要:demo在手,总得去试试看效果吧。我们先把默认的服务改成webserver,并且添加数据库的配置。 建立数据库,github里面有相关内容 CREATE TABLE `user_list` ( `userId` int(11) NOT NULL AUTO_INCREMENT, `account` v 阅读全文
posted @ 2018-10-26 17:25 invokermiracle 阅读(713) 评论(0) 推荐(0)
分析easyswoole3.0源码,服务启动为例(二)
摘要:以下内容需要结合es的源码,不然可能会觉得跳跃。先描述下es启动的大致流程。es启动的时候注册异常处理函数以及加载配置文件。根据位置文件的设置选择启动哪种swoole服务。然后用一个事件注册类,注册swoole服务需要的回调函数handler。 在启动前根据配置文件是否启动consoleTcpser 阅读全文
posted @ 2018-10-26 16:41 invokermiracle 阅读(1735) 评论(0) 推荐(0)
分析easyswoole3.0源码,服务启动为例(一)
摘要:swoole已经升级到4了,主要的特性是更好的支持协程,easyswoole也为了更好支持协程推出了es3。我本地环境是php7.2.9 centos7 在github下载最新的3.0的demo。地址为:https://github.com/easy-swoole/demo git下载demo注意分 阅读全文
posted @ 2018-10-26 15:54 invokermiracle
四 分析easyswoole源码(启动服务&Cache组件原理)
摘要:前文提到的在系统设置Cache组件 Cache::getInstance()的时候,会去调用processManager去创建Cache的进程,然后以管道通信的方式进行设置缓存和获取缓存。 Cache是以单例模式实现的。构造器会进行如下操作 ProcessManager::getInstance() 阅读全文
posted @ 2018-08-07 18:57 invokermiracle 阅读(1370) 评论(0) 推荐(0)
三 分析easyswoole源码(启动服务&TableManager,略提及Cache工具的原理)
摘要:前文连接,讲了es是如何启动swoole服务的。 里面有一个工具类TableManager。这个类为了处理进程间数据共享。是对swoole_table的一层封装swoole_table一个基于共享内存和锁实现的超高性能,并发数据结构。用于解决多进程/多线程数据共享和同步加锁问题。 TableMana 阅读全文
posted @ 2018-08-07 10:54 invokermiracle 阅读(1209) 评论(0) 推荐(0)
二 分析easyswoole源码(启动服务)
摘要:前文连接,阅读的时候最好参照EasySwoole2.1.2的源码 这里实际调用的是Core的start方法ServerManager::getInstance()->start(); 这个方法主要是启动swoole服务的 在这块代码里主要是核心,是在swoole执行start服务前设置相关配置以及配 阅读全文
posted @ 2018-08-06 16:28 invokermiracle 阅读(2225) 评论(0) 推荐(0)
一 分析easyswoole源码(启动服务)
摘要:分析easyswoole源码 1以启动为例 //检查是否已经安装 installCheck();//检查锁文件是否存在,不存在结束 //启动服务 serverStart showLogo();//显示logo $conf = Conf::getInstance();//获取config单例 $ins 阅读全文
posted @ 2018-08-06 14:51 invokermiracle 阅读(1942) 评论(0) 推荐(0)