美團T9分享官方進階文件:Nginx+Netty跟着案例學這兩份開源手冊

2020-08-13 14:29:39

 

Nginx是著名的Web伺服器,效能優異,執行效率遠超傳統的Apache、Tomcat, 廣泛應用於國內外諸多頂級網際網路公司。

Nginx的一個突出特點是其靈活優秀的模組化架構,可以在不修改核心的前提下增加任意功能,自2004年發佈至今,已經擁有百餘個官方及非官方的功能模組(如proxy、 mysql、 redis、 rtmp、 lua等),使得Nginx成長爲了一個近乎「全能」的伺服器軟體。

Nginx功能強大,架構複雜,學習、維護和開發的門檻較高。爲了幫助讀者跨越這一-障礙, 本書深入最新的Nginx原始碼(Stable 1.12.0),詳細剖析了模組體系、動態外掛、功能框架、進程模型、事件驅動、執行緒池、TCP/UDP/HTTP 處理等Nginx核心執行機制 機製,在此基礎上講解如何使用C、C++、 Lua、nginScript等語言來增強擴充套件Nginx,讓任何人都能夠便捷、輕鬆地開發和定製Nginx,進而應用到自己的實際工作中,創造出更多的價值。

前言

最早接觸Nginx大概是在2011年,面對着一個全新的Web伺服器,和大多數人一樣最初我也是一片茫然,能找到的參考資料十分有限,安裝、設定、執行幾乎都是「摸着石頭過河」,犯過許多低階錯誤。隨着對Nginx逐漸熟悉,它的高併發處理能力給我留下了深刻的印象,作爲一個開源軟體的愛好者,很自然地想要探究一下它的內部工作原理。我由此開始了對Nginx原始碼的鑽研之路,中間經過了很多的艱辛曲折,走過不少的彎路。

Nginx的橫空出世爲Web伺服器開闢了一個嶄新的天地,它搭建了一個高效能的伺服器

開發框架,而且是一個完整的、全功能的伺服器。模組化的架構設計很好地分離了底層支撐模

塊和上層邏輯模組,底層模組處理了設定、併發等伺服器的外圍功能,核心支撐模組定義了主

體的TCP/HTTP處理框架。開發者可以把大部分精力集中在上層的業務功能實現上,再也不

必去爲其他雜事而分心,提高了軟體的開發效率。

內容展示:

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

部分內容展示:

主要文件

Nginx功能概述

HTTP基礎功能﹔

  • 處理靜態檔案,索引檔案以及自動索引﹔
  • 反向代理加速(無快取),簡單的負載均衡和容錯﹔FastCGl,簡單的負載均衡和容錯﹔
  • 模組化的結構。過濾器包括gzipping, byte ranges,chunked responses,以及SSI-filter 。在SSI過濾器中,到同一個 proxy 或者FastCG的多個子請求併發處理﹔
  • SSL和TLSSNI支援﹔

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

核心模組

Nginx主模組

這裏是控制Nginx的基本功能的指合.

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

基礎模組

http核心模組

指合

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

其他模組

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

因爲下面 下麪還要展示另一份文件就不給大家一一展示了,需要獲取這份Nginx官方文件的小夥伴可以直接轉發+關注後私信(學習)即可免費獲取!

Netty進階之路,跟着案例學Netty

Netty將JavaNIO介面封裝,提供了全非同步程式設計方式,是各大Java專案的網路應用開發必備神器。本書作者是國內Netty技術的先行者和佈道者,本書是他繼《Netty權威指南》之後的又一力作。在文件中,作者將在過去幾年實踐中遇到的問題,以及Netty學習者諮詢的相關問題,進行了歸納和總結,以問題案例做牽引,通過對案例進行剖析,講解問題背後的原理,並結合Netty原始碼分析,讓讀者能夠真正掌握Netty,在實際工作中少犯錯。

這份文件中的案例涵蓋了Netty的啓動和停止、記憶體、併發多執行緒、效能、可靠性、安全等方面,囊括了Netty絕大多數常用的功能及容易讓人犯錯的地方。在案例的分析過程中,還穿插講解了Netty 的問題定位思路、方法、技巧,以及解決問題使用的相關工具,對讀者在實際工作中用好Netty具有很大的幫助和啓發作用。

本文件適合架構師、設計師、開發工程師、測試工程師,以及對Java NIO框架、Netty感興趣的其他相關人士閱讀。

《Netty 進階之路:跟着案例學Netty》就是能夠助人出坑的乾貨。需要獲取的小夥伴可以直接轉發+關注後私信(學習)即可獲取以上兩份官方文件

  • (1)Netty 初學者,想瞭解學習Netty需要儲備哪些技能,掌握哪些知識點,有什麼學習技巧可以更快地掌握Netty。
  • (2)《Netty權威指南》的讀者,學習完理論知識後,想在實際專案中使用,但是真正跟具體專案結合在一起解決實際問題時,又感覺比較棘手,不知道自己使用的方式是否是最優的,希望能夠多學一些案例實踐方面的知識,以便更好地在業務中使用Netty.
  • (3)在實際專案中遇到了問題的工程師,由於對Netty底層細節掌握得不紮實,無法有效地定位並解決問題。

Netty的一個特點就是入門相對容易,但是真正掌握並精通是非常困難的,原因有如下幾個:

  • (1)涉及的知識面比較廣。Netty作爲一個高效能的NIO通訊框架,涉及的知識點包括網路通訊、多執行緒程式設計、序列化和反序列化、非同步和同步、SSL/TLS安全、記憶體池、HTTP等各種協定棧,這些知識點在Java語言中本身就是難點和重點,如果對這些基礎知識掌握不紮實,是很難真正掌握好Netty的。
  • (2)偵錯比較困難。因爲大量使用非同步程式設計介面,以及訊息處理過程中的各種執行緒切換,相比傳統同步程式碼,Netty程式碼偵錯難度比較大。
  • (3)類繼承層次比較深,有些程式碼很晦澀(例如記憶體池)。對於初學者而言,通過閱讀程式碼來掌握Netty的難度還是很大的。
  • (4)程式碼規模龐大。目前,Netty的程式碼規模已經非常龐大,特別是協定棧部分,提供了對HTTP/2、MQTT、WebSocket等各種協定的支援,相關程式碼非常多。如果學習方式不當,抓不住重點,則全量閱讀Netty原始碼,既耗時又很難吃透,很容易半途而廢。
  • (5)資料零散,缺乏與實踐相關的案例。網上 Netty的各種資料非常多,但是都以理論講解爲主,Netty在各行業中的應用、問題定位技巧及案例實踐方面的資料很少,缺乏系統性的實踐總結,是Netty學習的一大痛點。

文件分爲以下幾個內容:

  • ( 1)Netty的啓動和停止
  • ( 2)Netty的記憶體
  • (3)Netty的併發多執行緒
  • (4)Netty的效能
  • (5)Netty的可靠性
  • (6)Netty的安全
  • ( 7)Netty的實踐
  • (8)Netty的學習

內容展示:

第1章Hetty伺服器端意外退出案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第2章Hetty用戶端連線池資源泄漏案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第3章Hetty記憶體池泄露疑雲案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第4章ByteBuf故障排查案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第5章Hetty發送佇列積壓導致記憶體漏失案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第6章API閘道器高併發壓測則效能波動案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第7章Hetty ChannelHandler併發安全案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第8章車聯網伺服器端接收不到車載終端訊息案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第9章Hetty 3.X版本升級案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第10章Hetty併發失效導致效能下降案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第11章工oT百萬長連線效能調優案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第12章靜態檢查修改不當引起效能下降案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第13章Hetty效能統計誤區案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第14章gRPC的Hetty HTTP/2實踐案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第15章Hetty事件觸發策略使用不當案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第16章Hetty流裡整形應用案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第17章Hetty SSL應用案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第18章Hetty HTTFS伺服器端高併發宕機案例

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

第19章MQTT服務接入超時案例

第20章Hetty實踐總結

美团T9分享官方进阶文档:Nginx+Netty跟着案例学这两份开源手册

 

《Netty 進階之路:跟着案例學Netty》就是能夠助人出坑的乾貨。需要獲取的小夥伴可以直接轉發+關注後私信(學習)即可獲取以上兩份官方文件