imi v1.0.13 发布,新增支持 Swoole 高性能协程服务器

宇润
 宇润
发布于 2019年09月27日
收藏 8

imi 是基于 PHP Swoole 的高性能协程应用开发框架,它支持 HttpApi、WebSocket、TCP、UDP 服务的开发。

在 Swoole 的加持下,相比 php-fpm 请求响应能力,I/O密集型场景处理能力,有着本质上的提升。

imi 框架拥有丰富的功能组件,可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。

毫秒级的注解及代码热更新,让你在开发时只管一把梭,体验与 fpm 下开发并无二致,保存就刷新,立马看到效果。

与其他专注微服务领域的 Swoole 框架不同,imi 专注单体应用开发。原因很简单:大部分公司都不需要上微服务,单体应用足矣。

官方网站:https://www.imiphp.com/

imi 框架第一个版本 v0.0.1 首发于 2018 年 6 月 21 日

本周主要推出了一个进程池和高性能协程服务器,相比传统模式,即便是跟 BASE 模式相比,也有非常大的性能提升。

imi v1.0.13 版本新增了一个 Swoole\Coroutine\Http\Server 实现的协程服务器。需要 Swoole 4.4+ 才可使用该特性。

该特性是可选的,不影响以前使用的服务器模式。

使用协程服务器特性,依靠 Linux 系统的端口重用机制,系统级的负载均衡,可以让你的多进程 Http 服务处理请求的能力得到提升。

使用 ab,本机->虚拟机(双核+2进程)压测Hello World 页面,相比之前的服务器模式大概有 80% 的性能提升。该数据仅供参考,不同配置、环境、业务代码跑出来的数字会有差距,但很明显,协程服务器可以实现更高性能的 Http 服务。

优缺点比较

优点

  • 👍高性能,Linux 系统级的负载均衡
  • 💪高度可控,使用 imi 自研进程池维护 Worker 进程
  • ☕无缝支持,业务代码无需做任何更改,即可享受到高性能

缺点

  • 不支持 Task 特性
  • 不支持监听多端口、多协议

总结

使用该特性,可以享受到高性能带来的好处,但是无法使用 Task,以及多端口多协议监听。

对于开发 Http API 的场景来讲,是非常适合用这个特性的。

更新日志

新增

优化

  • 优化 http 路由性能,当路由数量多时效果明显

修复

  • 修复部分情况下的热更新进程残留问题

开始使用

创建 Http Server 项目:composer create-project imiphp/project-http

创建 WebSocket Server 项目:composer create-project imiphp/project-websocket

创建 TCP Server 项目:composer create-project imiphp/project-tcp

创建 UDP Server 项目:composer create-project imiphp/project-udp

完全开发手册:https://doc.imiphp.com/

imi 组件库:https://github.com/imiphp

imi 官方指定 Http 客户端(替代 Curl):https://github.com/yurunsoft/yurunhttp

欢迎各路新人和大佬的加入贡献代码的行列中,修正错别字、错误拼写、提交代码,我们全都欢迎~

最后,预祝无心工作,只想为祖国母亲庆生的大家,国庆快乐!

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:imi v1.0.13 发布,新增支持 Swoole 高性能协程服务器
加载中

精彩评论

宇润
宇润
无心工作,只想为祖国母亲庆生

最新评论(3

霡霂
霡霂
咪咪框架,欧耶耶
宇润
宇润
无心工作,只想为祖国母亲庆生
t
tangzq1
加油哦,哈哈
返回顶部
顶部