網路通訊知識地圖

我在之前一段時間做過網路通訊的系列文章,但是文章還是偏散,沒有一個整體脈絡,本篇就以知識地圖的形式來進行梳理。

 

知識地圖是一種知識導航系統,並顯示不同的知識存儲之間重要的動態聯繫。本篇主要就是從更高的視角將之前的文章的結構思路展現出來。文章結構的思路實際上也是達到架構師程度要掌握的網路通訊知識學習路線。

 

目的意義

 

在咱們【編程一生】用戶群里,我看到有朋友提出一個問題:覺得很多事情是運維人員做的。實際上運維人員由於不懂業務,在實際工作中起不到相應的幫助。也有些很給力的運維人員,人家有問題不推脫,有時候靠著查開發人員的程式碼把問題解決了。

 

上面提到的就涉及到一個人員分工的問題。在十幾年前啊,前端後端都是沒有明確分工的,所有的開發都是全棧。前後端分工是為了讓大家能把事情做精做細。這幾年分工有越來越精細的趨勢。但是隨著職位的增高,那些職位高的人往往什麼都懂一些。因為他要負責的是一件事情,不是一個部分。

 

分工的目的是為了更好地解決事情。而排查問題是事情的一方面。我的建議是不要太計較這到底屬於誰的職責。職責是為事服務的。能搞定事的人絕不會受虧待。

 

總結一下:學習網路通訊相關的知識對於排查生產問題和架構都至關重要,要以事為中心,不要給自己設限。

 

基礎知識

 

作業系統和網路基礎

 

因為站在排查問題的角度,生產環境一般會選用linux環境。所以網路通訊有4大基礎。先說前2大基礎,對應我之前兩篇回饋不錯的文章:《白話linux作業系統原理》和《白話TCP/IP原理》。

 

要深入細節,就會涉及平時面試中的一些高頻問題。《深入淺出作業系統的零拷貝》和《網路位元組序列-大端序和小端序》都是必須要掌握的基礎。

 

面試中問得比較多的,還得是IO相關。一般面試,了解《輕鬆搞懂5種IO模型》和《趣談IO多路復用的本質》就差不多了。

 

應用層協議

 

HTTP狀態碼1XX深入理解》和《【答案公布】客戶端與服務端通訊時,所有的http狀態碼是否都是服務端返回的?》兩篇文章對http的狀態碼做了深入的講解,能把這些講清楚,相信能讓很多面試官眼前一亮。要是我面試的話,我會認為面試者思考問題很細緻。

 

網路安全

 

架構師之路-https底層原理》和《懂了!國際演算法體系對稱演算法DES原理》對證書和加解密、加驗簽演算法做了講解,這一塊作為網關等基礎設施的開發是必修課。

 

架構底蘊

 

在網路通訊相關的中間件中,有一些通用的邏輯設計,對應著《網路通訊之Session的歷史血脈》、《狀態保持解決方案-分散式session的歷史血脈》、《深入理解MQ生產端的底層通訊過程-理解channel》和《接下來一段時間會對大家進行網路通訊的魔鬼訓練-理解socket》這4篇文章。

 

作為架構師要對整個鏈路有全面的了解。《一個http請求進來都經過了什麼(2021版)》、《一個請求過來都經過了什麼?(2017年http版)和《一個請求過來都經過了什麼?(Thrift版)》就是在講一個架構師平時要做哪些方面的梳理。

 

 

應用案例

 

網路通訊很大的一方面價值是用來排查解決生產問題。在《https引起的跨域問題-COE&casestudy》、《池式結構-連接池》和《懂得三境界-使用dubbo時請求超過問題》中,我就介紹了生產上網路問題的案例,學以致用。

 

手撕Dubbo源碼,徹底理解RPC原理》這篇文章是想作為完結篇,說明學習了上面的知識,自己也可以輕鬆寫出一個框架了。

 

總結

 

本文介紹了掌握網路通訊的學習脈絡。做到架構師水平能掌握到這種程度的也不多。是不是也沒有那麼難?

 

 

編程一生

因為公眾號平台更改了推送規則,如果不想錯過內容,記得讀完點一下「在看」,加個「星標」,這樣每次新文章推送才會第一時間出現在你的訂閱列表裡。

 

PDCA方法論,檢查自己是否錯過更新:每周三晚上8點左右,我都會更新文章,如果你沒有收到,記得點開【編程一生】公眾號找一下(*^▽^*)