Skip to content

值得您信賴的旅遊品牌 | 團體旅遊、自由行的專家‎

機場接送

Menu
  • 首頁
  • 旅遊天地
  • 裝潢設計
  • 環保清潔
  • 發燒車訊
Menu

心有 netty 一點通!

Posted on 2021-01-122021-01-12 by admin

一、標準的netty線程模型

雙池合璧:

1、連接線程池:

連接線程池專門負責監聽客戶端連接請求,並完成連接的建立(包括諸如握手、安全認證等過程)。

連接的建立本身是一個極其複雜、損耗性能的過程,此處使用線程池,能夠極大的增加處理客戶端連接的能力。

2、I/O線程池:

連接線程池會將成功建立的連接註冊到後端I/O線程池,由I/O線程池負責對相應連接的網絡數據進行讀寫、編解碼處理。

在實際應用中,我們通常會定義相應的業務消息協議,並選擇合適的序列化機制,netty I/O線程池部分根據預設的規則進行數據的編解碼。

二、延伸的業務線程池

 

其實我們這裏說的業務線程池不在網絡層處理邏輯里。處理到I/O線程池部分,所需要的請求數據已經處理完畢,涉及具體的業務處理邏輯,比較複雜的,或者時間、性能消耗特別大的,通常我們會單獨設置相應的線程池來處理。

三、netty的極致性能設計

1、無鎖化設計

I/O線程的內部串行化:

局部無鎖化串行處理,避免多線程切換帶來的複雜性及性能損耗(鎖競爭、CPU資源分配)。至於對於處理能力的考慮,可以通過調整I/O線程池容量來平衡。

盡量避免I/O線程和業務線程混淆及切換。

2、直接內存使用

TCP接收和發送使用直接內存代替堆內存,避免了數據在堆內存和主內存之間的複製消耗,提升了I/O讀取和寫入的性能。

 3、transferTo

依賴於操作系統零拷貝特性直接將緩衝區數據發送到相應的通道。

傳統的方式,先將源文件拷貝到內存,然後由內存寫到目的文件。

netty 利用 NIO FileChannel transferTo方法,通道對通道寫數據。

4、CompositeByteBuf

組合緩存使用可以像操作單個緩存一樣操作多個緩存,避免了傳統的操作方式帶來的內存複製性能消耗。

5、內存池使用

netty支持通過內存池的方式循環利用ByteBuf,避免了頻繁的創建,銷毀ByteBuf帶來的資源及性能損耗。

ByteBuf byte數據緩衝區,是NIO編程的主要對象。高負載情景下,ByteBuf內存池使用,可以有效降低GC頻率。

PoolArena netty的內存池實現類。PoolArena 是由多個Chunk組成的大塊內存區域,每個Chunk由一個多個Page組成。

Chunk:組織管理Page的內存分配和釋放,Page被構建為二叉樹形式:

PoolSubpage:對於小於Page的內存使用,直接在Page中完成分配,每個Page切分為大小相同的多個存儲塊兒,存儲塊兒的大小由第一次申請的內存塊兒大小決定。

回收:netty使用狀態位標識Chunk及Page內存可用性,Chunk標識二叉樹Page節點使用狀態;Page標識內部內存塊兒的使用狀態。

6、線程安全優化

合理的使用線程安全容器、原子類等,提升系統的併發處理能力,

7、引用計數器

通過引用計數器及時的申請釋放不再引用的對象,細粒度的內存管理降低了GC的頻率,減少GC帶來的時延增大和CPU損耗。

Netty 4中 ByteBuf 和 ByteBufHolder 引入引用計數器功能(實現ReferenceCounted接口),在特定的對象上跟蹤引用的數目。

引用計數器初始為1。如果對象活動的引用計數器大於0,則不會被釋放。當引用計數減少到0,實例將會被釋放。這也是 PooledByteBufAllocator 內存池應用的核心特性。

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

好站推薦

  • 健康醫療 減重知識專區
  • 婚紗世界 婚紗攝影寫真網
  • 成人話題 未滿18請勿進入
  • 流行時尚 時下流行愛美情報
  • 理財資訊 當舖借貸信用卡各式理財方法
  • 生活情報 各行各業情報資訊
  • 科技資訊 工業電子3C產品
  • 網路資訊 新奇趣味爆笑內容
  • 美食分享 全台各式名產 伴手禮
  • 裝潢設計 買屋賣屋裝修一羅框
  • 視覺設計 T恤、團體服、制服、polo衫

近期文章

  • 解Bug之路-記一次JVM堆外內存泄露Bug的查找
  • Kubernetes日誌的6個最佳實踐
  • 什麼樣的車才稱得上是真正的7座車?
  • 9萬起能買的“德系”SUV?這車上市后能比肩哈弗H6嗎
  • 同叫X7的自主SUV,誰才是更強的後起之秀

標籤

USB CONNECTOR  一中街住宿 一中街民宿 南投搬家公司費用 古典家具推薦 台中一中住宿 台中一中民宿 台中室內設計 台中室內設計公司 台中室內設計師 台中室內設計推薦 台中電動車 台北網頁設計 台東伴手禮 台東名產 地板施工 大圖輸出 如何寫文案 婚禮錄影 家具工廠推薦 家具訂製工廠推薦 家具訂製推薦 實木地板 復刻家具推薦 新竹婚宴會館 木地板 木質地板 柚木地板 桃園機場接送 桃園自助婚紗 沙發修理 沙發換皮 海島型木地板 牛軋糖 租車 網站設計 網頁設計 網頁設計公司 超耐磨木地板 銷售文案 隱形鐵窗 電動車 馬賽克拼貼 馬賽克磁磚 馬賽克磚

彙整

  • 2021 年 1 月
  • 2020 年 12 月
  • 2020 年 11 月
  • 2020 年 10 月
  • 2020 年 9 月
  • 2020 年 8 月
  • 2020 年 7 月
  • 2020 年 6 月
  • 2020 年 5 月
  • 2020 年 4 月
  • 2020 年 3 月
  • 2020 年 2 月
  • 2020 年 1 月
  • 2019 年 12 月
  • 2019 年 11 月
  • 2019 年 10 月
  • 2019 年 9 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 6 月
  • 2019 年 5 月
  • 2019 年 4 月
  • 2019 年 3 月
  • 2019 年 2 月
  • 2019 年 1 月
  • 2018 年 12 月
©2021 值得您信賴的旅遊品牌 | 團體旅遊、自由行的專家‎ | Built using WordPress and Responsive Blogily theme by Superb