Camera360 开源基于 Swoole 的协程企业级微服务框架

yellowfish 发布于10月前 阅读241次
0 条评论

 今日Camera360正式开源其PHP微服务框架——Micro Service Framework For PHP,这是Camera360社区服务器端团队基于Swoole自主研发现代化的PHP协程服务框架,简称msf或者php-msf,是Swoole的工程级企业应用框架,经受了Camera360自拍相机亿级用户高并发大流量的考验。

php-msf由Camera360服务器团队主导研发,会持续更新与维护,也希望有更多优秀的Swoole应用实践开发者加入。php-msf核心设计思想是采用协程、异步、并行的创新技术手段提高系统的单机吞吐能力,降低整体服务器成本。

由于Swoole复杂的进程模型,php-msf为了屏蔽低层的差异,做了大量的工作,实现和传统MVC框架的唯一区别在于添加“yield”关键字。同时也参考了Yii2框架的部分代码实践,期望使用者可以无缝的从Yii2开发切换过来。

框架定位

专注打造稳定高性能纯异步基于HTTP的微服务框架,作为nginx+php-fpm的替代技术栈实现架构的微服务化;而Tcp/WebSocket Server将作为插件的形势支持,或者作为其他独立的开源项目。

对于小型团队或者业务系统我们建议还是采用传统的nginx+php-fpm技术栈,对于成本和性能来说没有瓶颈,也就完全没有必要引入全新的技术栈。

对于大中型团队或者业务系统,处在服务治理或者服务化演进的重要阶段,php-msf是可选方案之一。

对于庞大的PHP应用集群,想要大幅节约服务器成本,提升服务性能,php-msf是可选方案之一。

对于聚合服务,比如大型的网站首页,想要通过服务器端聚合内容整合数据,php-msf是可选方案之一。

主要特性

  • 精简版的MVC框架

  • IO密集性业务的单机处理能力提升5-10倍

  • 代码常驻内存

  • 支持对象池

  • 支持Redis连接池、MySQL连接池

  • 支持Redis分布式、master-slave部署结构的集群

  • 支持异步、并行

  • 基于PHP Yield实现协程

  • 内建http/redis/mysql/mongodb/task等协程客户端

  • 纯异步的Http Server

  • RPC Server/Client

  • 支持命令行模式

  • 支持独立进程的定时器

  • 支持独立配置进程环境要求

环境要求

  • Linux,FreeBSD,MacOS(有兼容问题)

  • Linux内核版本2.3.32以上(支持epoll)

  • PHP-7.0及以上版本(生产环境建议使用PHP-7.1)

  • gcc-4.4以上版本

  • swoole-1.9.15及以上版本(暂不支持Swoole-2.0)

  • hiredis-0.13.3

  • yac

  • phpredis

  • composer

文档

框架手册(Gitbook): PHP-MSF开发手册

API Document(Rawgit): 类文档

示例DEMO项目: PHP-MSF DEMO

帮助完善文档: https://github.com/pinguo/php-msf-docs,请提交PR。

 

  • brownkoala
  • purplefish
需要 登录 后回复方可回复, 如果你还没有账号你可以 注册 一个帐号。