1. 程式人生 > >國產通訊框架 smart-socket v1.4.0-rc 釋出:重新定義自己

國產通訊框架 smart-socket v1.4.0-rc 釋出:重新定義自己

smart-socket經歷一年多的開源發展,受到了不少Java開發者的關注與支援。並在社群的助推下成為了一款小巧、穩健又具備超高效能的AIO通訊框架,最新穩定版為v1.3.22。而該版本將成為smart-socket 1.3.X的首個TLS(長期支援)版本,各位朋友可放心使用。

<!-- https://mvnrepository.com/artifact/org.smartboot.socket/aio-core -->
<dependency>
    <groupId>org.smartboot.socket</groupId>
    <artifactId>aio-core</artifactId>
    <version>1.3.22</version>
</dependency>

如果您是首次聽說smart-socket,在此簡要介紹一下。smart-socket是一款極簡、易用、高效能的國產java AIO通訊框架,也許是IM、RPC、IoT開發的最佳選擇。玩轉通訊只有兩個介面的學習成本,如果覺得netty門檻太高,那就來試試smart-socket吧。

從今天開始,smart-socket正式步入1.4時代,本次釋出的版本號為:v1.4.0-rc,很遺憾不相容老版本。在1.4版本中,我們加入了一些新的特性,並對原先的設計做了如下調整:

  1. 設計了一套記憶體池模型,實現了真正意義上的零拷貝(填補了1.3版本中&ldquo;偽0拷貝&rdquo;的坑)。此前欲借鑑一下netty記憶體池的設計思路,因其過於複雜選擇放棄。並決定重新設計一套讓初學者都能快速理解、掌握的記憶體池模型,很幸運,成功了。

  2. 優化了CPU與IO資源的協調策略,效能提升了不止一點。

  3. API重構,正因如此才致使與smart-socket 1.3不相容。

    • 去除了Protocol#encode介面;

    • 除去了AioSession#write介面;

    • 資料輸出操作改為流式操作,即原先採用AioSession.write(),現在採用AioSession.getOuputStream().write();

  4. 刪除了流控狀態機。流控是smart-socket v1.3中服務穩定的保障,能有效應對流量攻擊。未來在smart-socket v1.4中會以外掛的形式提供流控服務。

  5. 精簡smart-socket專案的工程結構,方便開發人員閱讀原始碼。

  6. 程式碼量首次突破1000。從起初的500多行到後來v1.3.22版本的800多行,smart-socket的成長速度肉眼可見。

Maven地址

<!-- https://mvnrepository.com/artifact/org.smartboot.socket/aio-core -->
<dependency>
    <groupId>org.smartboot.socket</groupId>
    <artifactId>aio-core</artifactId>
    <version>1.4.0-rc</version>
</dependency>

效能表現

戳這裡前往,Ctrl+F 搜一下smart-socket,這是最近的一次測試結果,下一輪會有更好的表現。

總結

如果您對smart-socket感興趣請持續關注,若工作中有需求請暫且使用1.3.22版本。今日釋出的v1.4.0-rc是一次新的嘗試,力求實現自我突破。目前算是成功的邁出了第一步,在吸取社群的反饋意見並加以完善後,相信v1.4.0正式版不久之後便會跟大家見面,盡情期待。

有位名人說過:點贊是參與開源社群的最基本禮儀!https://gitee.com/smartboot/smart-socket

小彩蛋:由作者本人親自整理的《smart-socket 權威指南》即將於年底與大家見面(Q4工作太多,爭取不跳票)。