经历了一个又一个项目,也接触了很多的PHP框架,我欣赏CI的简约,又贪婪swoole的效率,我将CI和swoole很草率的结合到了一起。起初呢风平浪静,慢慢的就遇到了不少的瓶颈,毕竟CI的设计理念还是贴合FPM模式,如何更加得心应手的使用swoole,同时追求开发上和运行时的效率呢,最主要的还是要方便扩展,就萌生了SwooleDistributed这个开源框架的想法。
在SwooleDistributed发布之前,开源社区还没有过针对swoole的分布式框架,起初的目的并不是一个完整的应用框架,而是一个简单的分布式通讯框架,后来需求变多了,框架也就慢慢的丰满了。
分布式分布式这东西并不是有多神秘,但一个框架在基础构思中就包含分布式的思想,那无疑方便对以后的扩展。分布式系统涉及到多太物理机之间的调控,配置起来也是较为麻烦,SwooleDistributed使用了内网发现的技术手段,自动发现集群环境的物理机进行连接,简化了配置,甚至达到了无配置。
SwooleDistributed在前期可以控制成本的使用单机模式进行部署,也可以在后期进行水平扩展,对逻辑代码无需任何的改动。
你所需要的就是多增加物理机,跑上服务器就行啦。
MVCT解决了底层的分布式通讯问题,接下来就是MVC结构的搭建了,这部分借鉴了CI的设计,使用Loader模块加载对应的Model,通过路由访问对应的Controller。相信使用过CI框架的工程师很容易就上手。此外引入了Swoole独特的Task,将swoole的Task进行了封装优化,更加易于使用。
//TestTask.phpclassTestTaskextendsTask{publicfunctiontest(){print_r("testtimertask\n");}}//TestController.phpclassTestControllerextendsController{publicfunction