Swoole 2020 :4.5 新版本的規劃

轉眼 Swoole 開源項目已經歷 8 個年頭。這 8 年裏,有 116 位開發者爲 Swoole 貢獻了內核代碼。有無數 PHP 開發者爲 Swoole 提供 BUG 反饋和改進建議。也有大量 Swoole 用戶活躍在 Swoole 的問答社區、SegmentFault Swoole 專欄、QQ/微信技術交流羣。在 GitHub 平臺也累積了 1.5萬 + 的 star。做爲 Swoole 的創始人、核心開發者,倍感榮幸。感謝各位開發者爲 Swoole 生態所作出的貢獻。咱們必定會不忘初心,堅持開源。php

Swoole 4.5 版本

2019年12月份咱們規劃了新的 4.5 版本,這個版本的主題是 「代碼架構重構」。4.4 將做爲LTS分支長期支持。在 4.5 版本以前,Swoole 底層更多地是偏向於快速實現,沒有完整的代碼架構設計,而且代碼規範作的較差。編程語言方面也較爲混亂,同時存在 C 和 C++ 的源文件。頭文件的引用也不夠規範,如在非 Server 模塊中引用了 server.h 。其實社區中早已有不少 C/C++ 方面的開發者對此提出了建議。在此以前咱們團隊有不少優先級更高的工做須要完成,在代碼規範方面投入的時間精力較少。在新的 4.5 版本中,咱們將投入大量時間精力,從新設計代碼架構,完全改變這個局面。html

主要工做包括如下幾個方面:編程

  • 改造 Event API ,屏蔽 int 型 fd 的使用,統一爲 swSocket 對象
  • 移除 socket_array 全局變量
  • Server Master 完全移除鎖的使用,大幅提高並行能力
  • 全面切換爲 C++
  • 優化從 Reactor -> Worker -> PHP onReceive 數據傳遞方式,減小內存 Copy,onReceive 事件回調函數的性能提高 4 倍

根據社區用戶的反饋,在 4.5 版本中將會增長一些新特性:數組

  • HTTP2\Client 支持 pipeline recv
  • 內置 FastCGI 協程客戶端,與短生命週期 fpm 服務完美融合
  • 增長 Coroutine/Batch API,能夠並行執行 N 個函數,並接收返回值數組
  • 增長 onReload 事件回調,在發生 reload 以前觸發

另外,咱們發現使用 gRPC 、Http2 的 Swoole 用戶愈來愈多,Http2 模塊存在一些 BUG,在 4.5 版本中咱們會對 Http2 Client & Server 作一次大的重構工做,解決全部已知問題,穩定性和健壯性大幅提高。安全

4.5 版本也將移除一些已廢棄的特性:微信

  • 移除 Buffer 模塊
  • 移除 Runtime::enableStrictMode

Swoole 文檔計劃

因爲Swoole是很是底層的軟件,內核開發者大量精力都放在了添加新特性,處理BUG上面,對於你們一致吐槽的文檔問題一直沒有精力解決,如今咱們有了更多的開發者以及背後的商業化支持公司,已經有精力解決文檔問題了,新的文檔旨在解決你們一直吐槽的文檔問題,採用現代化的文檔組織形式,只包含Swoole4的內容,修改了大量老文檔中錯誤的內容,優化了文檔細節,增長了示例代碼,新的文檔預計在年後發佈。swoole

Swoole 核心開發者

因爲如今公司項目的工做任務較多,沒有過多精力參與到內核開發中。從 4.5 版本開始,我將逐漸減小代碼貢獻,分階段退出核心開發組。交給新一代開發者們:Twosee、Shiguangqi、CodingHuang & 其餘更多夥伴 。網絡

Twosee 會做爲 Swoole 開源項目新一代靈魂人物,就像 PHP 開源的 Nikic 。架構

Swoole 商業化

從 2018 年起 Swoole 開始了商業化的探索。通過一年半的努力,在 Swoole 項目核心開發者郭新華的帶領下,公司勉強達到了自負盈虧的狀態。其實建立這個公司的初心是經過提供一些商業服務,帶來資金收入,這樣能夠支持咱們整個 Swoole 內核研發團隊繼續投入到 Swoole 開源事業。也能有更多資源投在文檔、測試、社區運營、佈道推廣上socket

在 2019年 識沃公司(Swoole 商業公司)贊助了 PHPCon 大會,向 Swoole 社區不少活躍的貢獻者和用戶贈送了 T恤、帽衫 等小禮物,並經過對企業的深刻合做發現了不少需求,給社區反饋了不少高質量bug。

新華是 Swoole 開源和商業的核心力量。在開源領域,新華貢獻了:

  • php-cp:MySQL 鏈接池軟件,在聚美優品被大量使用
  • swoole_serialize:專門爲 PHP7 設計的高性能二進制序列化模塊,性能比 JSON/PHP串化高出不少、內存佔用更少

另外,Swoole 商業公司中不少核心的項目也是新華完成開發的:

2019 年末 咱們新開發了 Swoole Plus 軟件,在 Swoole 社區版本之上,增長了一些性能調優的方案,以及安全防禦、攻擊檢測、流量控制、Hbase/Solr-Cloud 支持。功能特性是其次的,主要是爲企業提供商業支持服務。幫助企業解決 PHP & Swoole 項目的技術難題。讓那些想大規模應用Swoole技術的公司能夠放心的使用咱們的技術。

明年咱們將陸續推出不少應用級別的解決方案,即時通信(IM)、安全網關、物聯網(IOT)、遊戲、客服系統等 Swoole 應用項目。

結語

即使咱們沒有 Google、Facebook、Microsoft 這些大廠那樣的資金和光環,也毫不放棄。正是對開源技術的熱愛,對 PHP 語言的熱愛,才使得咱們可以堅持下去。

咱們的目標是將 Swoole 作成工業級的軟件,做爲 PHP 語言網絡通訊方向的基石。

相關文章
相關標籤/搜索