日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【JAVA之NIO框架介绍】

發布時間:2023/12/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【JAVA之NIO框架介绍】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mina和Netty開始。因為這兩個NIO框架的創作者是同一個人Trustin Lee (韓國人)。GitHub主頁地址 :https://github.com/trustin。盡管創作者現在已經不專注與開發了。但是框架的后續開發和繼承,可以說都是符合最開始的設定的。兩個框架的架構設計思路基本一致。

?

Netty從某種程度上講是Mina的延伸和擴展。解決了一些Mina上的設計缺陷,也優化了一下Mina上面的設計理念。

?

xSocket:是一個輕量級的基于nio的服務器框架用于開發高性能、可擴展、多線程的服務器。該框架封裝了線程處理、異步讀/寫等方面。(只是對Java的NIO做了最簡單的封裝,以便于開發使用。)

?

Grizzly : 是一種應用程序框架,專門解決編寫成千上萬用戶訪問服務器時候產生的各種問題。使用JAVA NIO作為基礎,并隱藏其編程的復雜性。容易使用的高性能的API。帶來非阻塞socketd到協議處理層。利用高性能的緩沖和緩沖管理使用高性能的線程池。

?

The NIO Framework sits on top of the Java NIO library and hides most of the complexity of plain NIO. With the NIO Framework one can easily implement secure, high-performance Java network applications.

NIO Framework 是對 Java NIO 庫的封裝,將NIO的復雜度隱藏起來。有了它,人們可以方便地實現安全,高性能的Java網絡應用程序。

?

?

傳統RPC調用性能差的三宗罪

網絡傳輸方式問題:傳統的RPC框架或者基于RMI等方式的遠程服務(過程)調用采用了同步阻塞IO,當客戶端的并發壓力或者網絡時延增大之后,同步阻塞IO會由于頻繁的wait導致IO線程經常性的阻塞,由于線程無法高效的工作,IO處理能力自然下降。

序列化方式問題:Java序列化存在如下幾個典型問題:

1) Java序列化機制是Java內部的一種對象編解碼技術,無法跨語言使用;例如對于異構系統之間的對接,Java序列化后的碼流需要能夠通過其它語言反序列化成原始對象(副本),目前很難支持;

2) 相比于其它開源的序列化框架,Java序列化后的碼流太大,無論是網絡傳輸還是持久化到磁盤,都會導致額外的資源占用;

3) 序列化性能差(CPU資源占用高)

線程模型問題:由于采用同步阻塞IO,這會導致每個TCP連接都占用1個線程,由于線程資源是JVM虛擬機非常寶貴的資源,當IO讀寫阻塞導致線程無法及時釋放時,會導致系統性能急劇下降,嚴重的甚至會導致虛擬機無法創建新的線程。

?

高性能的三個主題

1) 傳輸:用什么樣的通道將數據發送給對方,BIO、NIO或者AIO,IO模型在很大程度上決定了框架的性能。

2) 協議:采用什么樣的通信協議,HTTP或者內部私有協議。協議的選擇不同,性能模型也不同。相比于公有協議,內部私有協議的性能通常可以被設計的更優。

3) 線程:數據報如何讀取?讀取之后的編解碼在哪個線程進行,編解碼后的消息如何派發,Reactor線程模型的不同,對性能的影響也非常大。

?

總結

以上是生活随笔為你收集整理的【JAVA之NIO框架介绍】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。