关于开源项目介绍:重磅丨科技教育公司好未来正式对外开源高性能PHP框架Fend

3次阅读

共计 2436 个字符,预计需要花费 7 分钟才能阅读完成。

好将来是一家以智慧教育和开放平台为主体,以素质教育和课外辅导为载体,在寰球范畴内服务公办教育,助力民办教育,摸索将来教育新模式的科技教育公司。

截至目前,好将来团体已围绕教育场景需要,累计研发包含图像、语音、数据挖掘、自然语言解决等 8 大类型、100 多项 AI 能力,打造 10 余项教育场景利用 AI 解决方案。

在技术一直晋升的路线上,好将来技术线提出保持“大中台、小前台”的技术策略,对立根底服务设施建设,推动公司技术组件落地,加强企业技术人才内生,一直晋升企业的技术实力及技术影响力。

除此之外,好将来外部保持开源共享,通过“凋谢、共享、合力开发”的模式,推动开源文化氛围的造成与技术组织变革,为中台建设提供了另外一种抓手。同时通过开源文化的建设,促成整个教育生态技术共享,晋升教育科技实力,更好的为“科技与爱让教育更美妙”的愿景奠定根底。

近期由“好将来”技术团队开源的高性能 PHP 框架 Fend PHP 正式上线!该框架单机 QPS 可达到 4000 个,好将来外部目前超过 30 个团队我的项目在应用该 PHP 框架!

前言

PHP 是一款简略不便的语言,而行业开源框架为了 后续灵便 而变得过于沉重

Fend 框架是一款很有历史的框架、初代公布后始终在好将来坊间流传应用、衍生出大量分支版本

这是一款很有意思的框架、一般的框架内暗藏着大型互联网教训的精髓、也同时存在大量历史痕迹

2019 年 7 月 咱们对 Fend 进行整顿、封装、推广、目前在好将来外部有大量的用户在应用、保护

2020 年 7 月 开源、以此共建交换

咱们崇尚 好高鹜远、俯视星空 精力 欢送小伙伴一起参加开源共建

设计方向

Fend 框架是一款以企业疾速实现业务为次要指标的框架,但与简单的行业风行框架谋求不同:

  • 简略实用:谋求疾速上手,扩大性能一步到位、大量升高性能的复杂度、框架更重视简略实用实现
  • 单层内核:谋求一个函数能实现的性能绝不继承封装,不谋求框架本身性能的继承可复用
  • 内聚归类:高度集中归类性能,升高底层复杂度,缩小底层组件关注度、更多工夫在业务
  • 继续积攒:继续积攒大型互联网线上经营教训,继续摸索企业实用技巧,深度来自于积攒而非 AOP 带来的灵活性
  • 内核设计:高内聚简略内核,放开业务自封装空间,留下更多空间给业务
  • 开源心态:凋谢公开,承受任何合乎价值观源码贡献、但有严格代码审核

性能简介

  • Swoole/FPM 双引擎平滑切换(协程版本还在整顿稍晚放出)
  • 对立应用 Composer Autoload PSR4
  • 申请 Debug 模式,申请网址 wxdebug= 1 可查看 debug 模式查看异样剖析性能
  • 协程模式下对变量域做了更好的封装,升高协程应用难度
  • 反对压测应用灰度影子库
  • 高速 map 映射路由 + FastRouter 正则路由
  • 合乎大数据挖掘设计的 Trace 日志,不便 ELK 剖析、ClickHouse、HBase、实时预警
  • throw new Exception 形式解决业务异样、可能疾速发现异常

性能压测

目前是在 KVM 虚拟机上压测、后续会找一台阿里云进行压测

FPM 性能

服务器配置

  • CPU 4 核 Xeon 2.2
  • 内存 12G
  • KVM + CentOS 7.6
  • FPM 开启过程数 500

QPS 5331 (剖析:fpm 空跑 hello 1w、引入 composer autoload 后 7000、开启日志 trace 6000、框架内 echo 5000)

Swoole 1.10.x 性能

服务器配置

  • CPU 4 核 Xeon 2.2
  • 内存 12G
  • KVM + CentOS 7.6
  • FPM 开启过程数 500

QPS 24000、协程版本稍晚放出

发行版本介绍

Fend 有两个版本

  • Tag 版本为 1.2.x FPM/Swoole 1.10.x 平滑切换版本
  • Tag 版本为 1.3.x FPM/Swoole 4.5.x Coroutine 协程 平滑切换版本 此版本还在调整

以下为 1.2.x 版本装置

FPM Engine Start

master is 1.2.x version

composer create-project fend/fend-skeleton:~1.2.0 project_name
复制代码

Ref nginx.conf to configure Nginx and http://127.0.0.1/ on browser

Swoole Engine Start

composer create-project fend/fend-skeleton:~1.2.0 project_name

# swoole start (/bin/fend depend on composer require symfony/console)
php /bin/fend Swoole -c app/Config/Swoole.php start
php /bin/start.php -c app/Config/Swoole.php start
复制代码

browser http://127.0.0.1:9572/

1.3.0 协程版本 装置

composer create-project fend/fend-skeleton:~1.3.0
复制代码

软件作者奉献列表

姓名

事业部

部门

刘帅 (@lsfree)

网校

平台研发部

韩天峰 (@matyhtf)

网校

架构研发部

徐长龙 (@蓝天)

网校

架构研发部

陈曹奇昊 (@twose)

网校

架构研发部

谢华亮 (@黑夜路人)

开放平台

智慧教育

陈雷 (@godblessmychildren)

网校

互联网研发部

(其余贡献者、请详见文档鸣谢)

合作伙伴

好将来教育团体 90% 在线业务在应用本框架

  • xiaohouai.png

共建规定

欢送挑战组件性能、容许同类性能同时公布竞争、以 性能好 + 实用及实现简略 + 性能实用 评判

分割咱们

issue: github.com/tal-tech/fe…

加群请加微信:

兴许你还想看

DStack– 基于 flutter 的混合开发框架

WebRTC 源码剖析——视频流水线建设(上)

“ 考试 ” 背地的迷信:教育测量中的实践与模型(IRT 篇)

作者:好将来技术团队
链接:https://juejin.im/post/686078…
起源:掘金
著作权归作者所有。商业转载请分割作者取得受权,非商业转载请注明出处。

正文完
 0