國產通訊框架 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.3版本中“偽0拷貝”的坑)。此前欲借鑑一下netty記憶體池的設計思路,因其過於複雜選擇放棄。並決定重新設計一套讓初學者都能快速理解、掌握的記憶體池模型,很幸運,成功了。
優化了CPU與IO資源的協調策略,效能提升了不止一點。
API重構,正因如此才致使與smart-socket 1.3不相容。
去除了Protocol#encode介面;
除去了AioSession#write介面;
資料輸出操作改為流式操作,即原先採用AioSession.write(),現在採用AioSession.getOuputStream().write();
刪除了流控狀態機。流控是smart-socket v1.3中服務穩定的保障,能有效應對流量攻擊。未來在smart-socket v1.4中會以外掛的形式提供流控服務。
精簡smart-socket專案的工程結構,方便開發人員閱讀原始碼。
程式碼量首次突破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工作太多,爭取不跳票)。