Netty概念、優勢及應用場景

Netty概念、優勢及應用場景

什麼是Netty?

1)本質:JBoss做的一個Jar包

2)目的:快速開發高性能、高可靠性的網絡服務器和客戶端程序

3)優點:提供異步的、事件驅動的網絡應用程序框架和工具

爲什麼要用Netty?

特點

1)高併發

Netty是一款基於NIO(Nonblocking I/O,非阻塞IO)開發的網絡通信框架。

2)傳輸快

Netty的傳輸快其實也是依賴了NIO的一個特性——零拷貝。

3)封裝好

優勢

  • Netty封裝了NIO操作的很多細節,提供易於使用的API。

  • API使用簡單,開發門檻低;

  • 功能強大,預置了多種編解碼功能,支持多種主流協議;

  • 定製能力強,可以通過ChannelHandler對通信框架進行靈活地擴展;

  • 性能高,通過與其他業界主流的NIO框架對比,Netty的綜合性能最優;

  • 成熟、穩定,Netty修復了已經發現的所有JDK NIO BUG,業務開發人員不需要再爲NIO的BUG而 煩惱;

  • 社區活躍,版本迭代週期短,發現的BUG可以被及時修復,同時,更多的新功能會加入;

  • 經歷了大規模的商業應用考驗,質量得到驗證。在互聯網、大數據、網絡遊戲、企業應用、電信軟 件等衆多行業得到成功商用,證明了它已經完全能夠滿足不同行業的商業應用了。

應用場景有哪些?

  1. 分佈式系統,各個節點之間需要遠程服務調用,高性能的 RPC 框架必不可少,Netty 作爲異步高性能的通信框架,往往作爲基礎通信組件被這些 RPC 框架使用。典型的應用有:阿里分佈式服務框架 Dubbo 的 RPC 框架使用 Dubbo 協議進行節點間通信,Dubbo 協議默認使用 Netty 作爲基礎通信組件,用於實現各進程節點之間的內部通信。
  2. 構建高性能、低時延的各種 Java 中間件,例如 MQ、ESB 消息總線等,Netty 主要作爲基礎通信框架提供高性能、低時延的通信服務;
  3. 公有或者私有協議棧的基礎通信框架,例如可以基於 Netty 構建異步、高性能的 WebSocket 協議棧;
  4. 各領域應用,例如大數據、遊戲等,Netty 作爲高性能的通信框架用於內部各模塊的數據分發、傳輸和彙總等,實現模塊之間高性能通信。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章