简介
优质
小牛编辑
144浏览
2023-12-01
为什幺写这个框架?
- 利用协程特性以同步方式来编写异步代码,增强可读性。
- 将swoole的异步特性与传统框架的MVC相结合。
- 可以用作api也可以用作http server,rpc server.
- 目前实现了以Zookeeper、Redis、Mysql为注册中心的服务化治理.
如何使用,与传统框架的区别?
- 框架基本使用与传统框架基本一致,路由,控制器,服务层,数据层。
- 在异步调用的地方需要以yield关键词来触发协程切换
生产环境使用
- GroupCo框架目前已经全线用于我们团队,日均处理请求百万次,基础服务调用耗时平均约为0.1ms
特性
- 全异步协程调度,支持高并发
- 服务发现,客户端缓存、心跳检测、服务监听
- 统一配置中心
- 异步TCP,HTTP客户端
- 异步日志
- 异步文件读写
- 异步Mysql
- 异步Mysql事务处理
- 异步Redis
- 支持Mysql连接池,Redis连接池
- SOA服务化调用,内部封装完整的RPC通信,服务端采用异步Task处理后合并数据并返回。
- 异步TCP客户端支持并行、串行调用
- 支持EOF结束符协议、自定义网络通信协议,支持json化、php序列化包体,支持gzip。
- Twig、Doctrine支持视图、服务数据层
- 单元测试覆盖
文档总览
- 快速开始
- 环境依赖
- 启动项目
- 异步服务
- 异步Tcp客户端
- 异步Http客户端
- 异步Redis客户端
- 异步Mysql客户端
- 异步Log日志
- 异步文件读写
- 异常Exception
- 服务中心
- 服务治理流程
- 注册中心
- 服务调用
- 服务调用监控
- 服务调用失败事件
- 调试模式
- 配置中心
- 配置中心的使用
- 基础服务
- Config配置类
- StaticCache静态缓存类
- Route路由类
- Controller控制器类
- View视图类
- Request请求类
- Response响应类
- Event事件类
- Listener监听类
- Subscriber多事件监听
- EventDispatcher事件调度
- 同步服务(用于服务开发)
- Service
- Dao
- Cache
- Log日志类
- FileCache文件缓存类
- 单元测试
- 控制台
案例Demo与最佳实践(即将更新)
- 实现服务异常邮件通知
- 秒杀系统,与GO切磋
- 日志分析服务
- Api服务
BUG反馈
如果你在使用过程中遇到安全或者框架层面使用bug,请提issue。
理想的架构模型
- 架构选型
与Go的协程的区别
基于Swoole的异步与php的Generator实现的异步协程,而go语言是内置协程,这是本质上的区别。swoole2.0以上版本开始支持内置协程,在触发io时会触发协程调度,不过还未稳定,但是重新定义了PHP,使得PHP可以支持更大的并发,做更多的事情。