Camera360 开源基于 Swoole 的协程企业级微服务框架 - 开源中国社区
Camera360 开源基于 Swoole 的协程企业级微服务框架
phpboy 2017年09月07日

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

phpboy phpboy 发布于2017年09月07日 收藏 66

腾讯云 十分钟定制你的第一个小程序>>>  

今日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。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Camera360 开源基于 Swoole 的协程企业级微服务框架
分享
评论(11)
精彩评论
1
����
1
赞,完了试试先。
最新评论
0
Ubuntu 16.04 安装 Swoole:
sudo apt-get install php7.0-cli php7.0-dev
sudo pecl install swoole
echo 'extension=swoole.so' > /etc/php/7.0/cli/conf.d/swoole.ini
php --ri swoole 看见 swoole support => enabled 表示安装成功.
0
666666
0
厉害了
0
1
����
0
可以的,学习了。
0
666����
1
赞,完了试试先。
0
0
支持,最近也在做这件事
0
先躺下沙发.
顶部