文件名称:Swoole 分布式通讯框架 SwooleDistributed.zip
文件大小:1.01MB
文件格式:ZIP
更新时间:2022-08-07 23:17:35
开源项目
SwooleDistributed 是swoole分布式系统的实现,他提供了一套基于swoole扩展的分布式通讯框架。结构图:SwooleDistributed 不仅提供了分布式搭建的必要设施,还提供了4大组件帮助你提高编写代码的效率,你既可以部署成单机模式也可以搭配dispatch模块构建集群系统。有别于传统的MVC架构,SwooleDistributed 主要应对的是rpc服务或者是通讯服务,也就是说MVC中的View模块是没有实际意义的,所以在SwooleDistributed 中仅存在Model和Controller,另外为了方便开发我们额外添加了2个组件分别是Task和Timer。Task组件主要是处理异步任务,由于Task的设计结构简单只适合用于辅助swoole的worker进程,处理简单并不复杂的异步操作,如果你将他作为复杂耗时并且频繁调用的组件那是不可取的。Timer是封装好的定时器,他和Task组件关系密切,你可以通过Timer进行定时任务。目前提供便利的还有异步的Redis连接池,你可以方便简单的使用redis异步服务而不用担心连接池的问题,我们已经优雅的解决了。但值得注意的是所有的异步服务都只允许在worker进程中调用,task进程只能调用同步服务。未来将要实现的:1.异步的mysql服务,建立管理mysql连接池。2.mysql语法构建器,帮助快速构建mysql语句。3.Job服务组件的开发,结合消息队列系统实现分布式的异步任务。安装须知:php 7.0 2.需要使用最新版的swoole,请通过github下载编译swoole,1.8.7在php7.0下存在bug不建议使用 3.需要redis支持,安装redis扩展 swoole编译时选择异步redis选项 4.需要composer支持,安装composer,运行composer install安装依赖 5.如需集群自行搭建LVS 运行:php start_swoole_server.php start 启动swoole server服务器 2.php start_swoole_dispatch.php start 启动swoole dispatch服务器 3.单独启动swoole server不具备分布式特性,一台物理机只允许启动一个swoole server 4.swoole dispatch服务器可以和swoole server放在一个物理机上,一台物理机只允许启动一个swoole dispatch 5.可以启动多台swoole server和多台swoole dispatch搭建分布式系统(至少1台LVS,2台swoole server,1台swoole dispatch,1个redis) 6.单独启动swoole server可作为单机服务器。 7.修改config目录下配置,改为你自己的配置。 8.swoole server与swoole dispatch 必须在同一个网段。swoole dispatch无需配置,swoole server会自动发现 9.swoole server与swoole dispatch 都支持动态弹性部署,随时热插拔。swoole dispatch上线后30秒内被swoole server发现并建立连接 10.内置controller,model,task 3大模块 11.swoole server与swoole dispatch都被设计成无状态服务器,所有的信息共享都通过redis 12.最新版采用了异步redis进行数据存储,通过开启一个新的redis连接池进程,利用addProcess和sendMessage技术进行结果分发,优雅解决异步问题。 13.注意taskproxy为单例,不要变成成员变量使用,用到时load 标签:通讯框架