重磅丨科技教育公司「好將來」正式對外開源高性能PHP框架Fend

好將來是一家以智慧教育和開放平臺爲主體,以素質教育和課外輔導爲載體,在全球範圍內服務公辦教育,助力民辦教育,探索將來教育新模式的科技教育公司。php

截至目前,好將來集團已圍繞教育場景需求,累計研發包括圖像、語音、數據挖掘、天然語言處理等8大類型、100多項AI能力,打造10餘項教育場景應用AI解決方案。nginx

在技術不斷提高的道路上,好將來技術線提出堅持「大中臺、小前臺」的技術戰略,統一基礎服務設施建設,推動公司技術組件落地,加強企業技術人才內生,不斷提高企業的技術實力及技術影響力。git

除此以外,好將來內部堅持開源共享,經過「開放、共享、協力開發」的模式,推進開源文化氛圍的造成與技術組織變革,爲中颱建設提供了另一種抓手。同時經過開源文化的建設,促進整個教育生態技術共享,提高教育科技實力,更好的爲「科技與愛讓教育更美好」的願景奠基基礎。github

近期由「好將來」技術團隊開源的高性能PHP框架Fend PHP正式上線!該框架單機QPS可達到4000個,好將來內部目前超過30個團隊項目在使用該PHP框架!服務器

前言

PHP是一款簡單方便的語言,而行業開源框架爲了後續靈活 而變得過於繁重微信

Fend框架是一款頗有歷史的框架、初代發佈後一直在好將來坊間傳播使用、衍生出大量分支版本swoole

這是一款頗有意思的框架、普通的框架內隱藏着大型互聯網經驗的精華、也同時存在大量歷史痕跡app

2019年7月 咱們對Fend進行整理、封裝、推廣、目前在好將來內部有大量的用戶在使用、維護composer

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
複製代碼

軟件做者貢獻列表

image

(其餘貢獻者、請詳見文檔鳴謝)

合做夥伴

好將來教育集團90%在線業務在使用本框架

  • xiaohouai.png

    xiaohouai.png

共建規則

歡迎挑戰組件功能、容許同類功能同時發佈競爭、以 性能好 + 實用及實現簡單 + 功能實用 評判

聯繫咱們

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

加羣請加微信:

contactus.png

也許你還想看

DStack--基於flutter的混合開發框架

WebRTC源碼分析——視頻流水線創建(上)

"考試"背後的科學:教育測量中的理論與模型(IRT篇)

相關文章
相關標籤/搜索