【開源推薦】smart-socket 1.4.10 發佈,SSL/TLS 插件化改造

簡介

smart-socket 是一個 AIO 通信框架,可以快速、輕鬆地開發 Client/Server 網絡應用程序。它大大簡化了網絡編程難度和複雜度,可廣泛應用與各類TCP/UDP的通信場景。

smart-socket 是從許多協議(Http、WebSocket、MQTT、二進制私有協議)的實踐中積累了大量寶貴經驗,從而凝練成了一款極簡、易用、高性能的通信框架。

極簡

  • 支持各種傳輸類型、協議,且僅圍繞著兩大核心接口(MessageProcessor、Protocol)編程開發。
  • 靈活且可擴展的狀態機設計,可以清晰地分離關注點。
  • 核心包代碼 1500行,編譯後的jar包僅 44kb(如果對此無明顯感觸,可以比較其他同類項目)。

易用

  • 文檔豐富的 Javadoc 、用戶指南和示例。
  • 沒有額外的依賴,只要求JDK 8及以上版本。
  • 高度可定製化的插件。已內置一些非常實用且開箱即用的插件:SSL/TLS通信、心跳、斷鏈重連、服務指標統計、黑名單、內存池監測。

高性能

  • 更好的吞吐量,更低的延遲
  • 更少的資源消耗
  • 最盡肯能減少不必要的內存拷貝

更新內容

  1. 引入 BufferFactory 的設計簡化客戶端/服務端內存池的配置。
  2. 完成 SSL/TLS 通信能力的插件化改造,徹底廢除了SslAioSession、AioSSLQuickServer、AioSSLQuickClient。
  3. 服務端 AioQuickServer 支持共享外部內存池。即一個進程中啟動多個服務端或者客戶端,可以共用同一個內存池,提升資源利用率。
  4. 調整 NetMonitor 的接口設計。
  5. 默認禁用內存池。對性能無極致要求的場景可忽略內存池,降低學習成本。

Maven

<code><dependency>
<groupid>org.smartboot.socket/<groupid>
<artifactid>aio-pro/<artifactid>
<version>1.4.10/<version>
/<dependency>/<code>

性能測試

  • 環境準備測試項目:smart-http
  • 通信協議:Http
  • 壓測工具:wrk
  • 測試機:MacBook Pro, 2.9Ghz i5, 4核8G內存
  • 測試命令:
<code>wrk -H 'Host: 10.0.0.1' -H 'Accept: text/plain,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 1024 --timeout 8 -t 4 http://127.0.0.1:8080/plaintext -s pipeline.lua -- 16/<code>
  • 測試結果:smart-socket的性能表現基本穩定維持在 100MB/s 左右。
【開源推薦】smart-socket 1.4.10 發佈,SSL/TLS 插件化改造


分享到:


相關文章: