服務端漫遊

不會飛的章魚發表於2019-04-14

注:本文內容源自polaris在知識星球Go專案實戰中的直播,已獲得本人許可。

第一站:穿梭於Internet

enter image description here

第二站:協議

重點掌握

  • TCP/UDP
  • HTTP

常考面試題

  • TCP的三次握手過程
  • TCP的四次揮手過程

推薦書籍

  • 《圖解http協議》
  • 《圖解TCP協議》

建議用wireshark抓包軟體進行分析。

第三站:Unix/Linux作業系統

掌握對Unix/Linux作業系統的常用操作指令操作,例如

  • shell指令碼
  • vim編輯器的使用
  • sed
  • awk

多練習,多總結

網路程式設計方面需掌握

  • Socket、Unix Domain Socket
  • 程式間通訊

推薦書籍

  • 《UNIX網路程式設計卷一:套接字》
  • 《UNIX環境高階程式設計》
  • 《Linux/Unix設計思想》

第四站:Nginx、Apache、Caddy、等Web Server和核心功能

介紹

enter image description here

Web Server核心功能

  • HTTP解析
  • HTTPS支援
  • 虛擬主機(一個埠,多個域名)
  • 靜態資源
  • URL重寫
  • gzip壓縮
  • 作為反向代理,和其他程式常用通訊協議的支援

推薦學習瞭解下Caddy

第五站:常用的支援Web開發的語言

  • PHP(LAMP、LNMP)
  • Java
  • Python
  • Ruby
  • Go
  • C#(.NET)

另外常用的資料結構和演算法要有了解

第六站:資料庫

  • 關聯式資料庫:SQLite,MySQL,Postgresql,SQL Server,Oracle
  • NoSQL:Redis,Mongodb,Cassandra,HBase
  • 快取:Redis,Memcached
  • 其他:Go BoltDB,dgraph,CockroachDB

入門資料庫推薦使用MySQL

推薦書籍

  • 《高效能MySQL》
  • 《MySQL技術內幕InnoDB引擎》
  • 《Redis實戰》

第七站:架構

  • 高可用,高效能,可擴充套件
  • 分散式,CAP理論
  • 分散式訊息佇列:Redis,ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等
  • 常用的應用場景:非同步處理,應用解耦,流量削峰和訊息通訊
  • 微服務

寫在最後

直播後有個答疑環節,我將此次答疑的收貨整理如下:

  • 關於服務端面試

面試考語言的分量比較小,因為服務端涉及的面比較廣,需要學習的東西很多,有時候原理比語言更重要。

  • 關於承壓

在專案研發過程中,無論是測試還是上線跑,服務端會經常背鍋,所以在壓力上要及時調整好心態,做好和其他崗位人員的及時有效溝通。

  • 關於未來發展

努力去大公司,做一些大專案,最好流量是千萬級別以上的。

學無止境,一起努力!

相關文章