好未來是一家以智慧教育和開放平臺為主體,以素質教育和課外輔導為載體,在全球範圍內服務公辦教育,助力民辦教育,探索未來教育新模式的科技教育公司。
截至目前,好未來集團已圍繞教育場景需求,累計研發包括影像、語音、資料探勘、自然語言處理等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
複製程式碼
軟體作者貢獻列表
(其他貢獻者、請詳見文件鳴謝)
合作伙伴
好未來教育集團90%線上業務在使用本框架
xiaohouai.png
共建規則
歡迎挑戰元件功能、允許同類功能同時釋出競爭、以 效能好 + 實用及實現簡單 + 功能實用 評判
聯絡我們
issue: github.com/tal-tech/fe…
加群請加微信:
也許你還想看