1. 程式人生 > 其它 >實戰 Kubernetes 中部署 MySQL 叢集

實戰 Kubernetes 中部署 MySQL 叢集

HTTP

HTTP是無狀態應用層協議,即HTTP不會儲存使用者的狀態資訊,HTTP定義了Web客戶端和Web伺服器的通訊方式,HTTP採用TCP作為支撐它的運輸協議。HTTP可以採用非持續性TCP連結,還可以採用持續性TCP連結,通過HTTP報文中的首部行Connection控制。

非持續性:瀏覽器每獲得一個資源,就關閉TCP連結,重新建立一個新的TCP連結獲得其他資園。

持續性:瀏覽器通過一個TCP連結獲得所有它需要的資源。

由於HTTP是無狀態協議,但是服務提供商又想要客戶提供一些狀態,就通過cookie實現。

實現cookie的四大元件:

  • HTTP請求和響應報文中的cookie首部行,指明瞭cookie的唯一識別符號。
  • 瀏覽器管理維護的cookie檔案。
  • 後端資料庫的cookie表項。

cookie作用的過程:

  1. 當客戶向一個從未訪問過的網站發起請求。
  2. 網站伺服器接收到請求,併為這個請求設定一個唯一標識,存放到資料庫中,並將唯一表示插入到響應報文的cookie首部行中。
  3. 瀏覽器接受到響應,將響應報文中的cookie首部行中的cookie識別符號插入到cookie檔案中。
  4. 當客戶再次訪問同一網站時,瀏覽器就去cookie檔案中查詢cookie標識,插入到cookie首部行中,伺服器接收到請求就可以更具cookie首部行的cookie唯一標識從資料庫中得到使用者的狀態資訊。

Web快取

web快取器就是代理伺服器,作用是代表源伺服器滿足HTTP請求,Web快取器可以快取最近訪問過的物件副本,當用戶再次訪問同一個物件時,web快取器可以將副本傳送給客戶,不用再去源伺服器中查詢。

作用:

  1. 降低HTTP請求的響應時間
  2. 降低因特網的通訊量:因為代理伺服器通常與主機處於同一區域網中。

條件查詢

因為代理伺服器快取的資訊可能過舊,就是說源伺服器中與代理伺服器中所對應的副本可能已經修改過了。當用戶請求副本時就會獲得一箇舊的副本。

此時就可以使用條件查詢,也就是代理伺服器向源伺服器傳送條件查詢請求,看副本所對應的原始檔是否修改過,如果修改過,那麼源伺服器將新的物件傳送給代理伺服器,代理伺服器快取新的物件,如果源物件沒有被更新過,那麼就不傳送舊物件給代理伺服器,響應報文為空,狀態為304未修改。

DNS

DNS就是域名解析器。一臺主機有兩個識別碼:

  1. 主機名(域名)給人看的。
  2. IP地址,給路由器看的。

IP地址不適合人們記憶,所以需要主機名,但當主機間要通訊的話就要通過IP進行,因此需要一種將主機名對映為IP地址的方法,這就是DNS的作用。

DNS主機查詢分散式資料庫的應用層協議,DNS是一個由分層DNS伺服器實現的分散式資料庫。DNS協議執行在UDP上。

DNS的作用過程:

首先要使用DNS,主機上必須要有一個DNS應用。

  1. 當客戶通過瀏覽器訪問一個網站時,瀏覽器通過URL將主機名提取出來呼叫DNS應用,DNS應用通過瀏覽器傳來的域名向DNS伺服器發出DNS查詢請求報文。
  2. DNS伺服器對查詢請求進行響應,將相關的域名通過DNS響應報文。
  3. DNS應用將DNS響應報文中的Ip地址傳送給瀏覽器。
  4. 瀏覽器通過IP地址向目標主機發起TCP連結。

DNS的其他作用:

  1. 主機的別名
  2. 郵件的別名
  3. 負載均衡:就是一個域名對應一組IP集合,每次請求輪流的將集合中的每個ip作為響應。

DNS分散式層次

  1. 根DNS伺服器
  2. 頂級域DNS伺服器
  3. 權威DNS伺服器
  4. 本地DNS伺服器:本地ISP提供的伺服器。

DNS應用查詢ip的細節

DNS應用向本地DNS伺服器發起DNS查詢請求,

  • DNS伺服器看本地快取中有無對應的資源記錄。如果有則直接響應客戶請求,

  • 如果沒有就向向根DNS伺服器發起查詢請求,根DNS伺服器向本地DNS伺服器傳送響應報文,包含連個資源記錄,一個是獲得該主機名對應IP的頂級域域名,和頂級域域名對應的ip地址。

  • 本地DNS伺服器向根DNS提供的資訊向頂級域發起請求,頂級域伺服器接收到請求也如同根DNS伺服器一樣,將獲得該域名所對應的ip地址的權威DNS伺服器的域名和權威DNS伺服器的域名對應的ip的資源記錄插入DNS響應報文中傳送給本地DNS伺服器。

  • 本地DNS伺服器接收到頂級域伺服器中的資訊,向權威伺服器發起DNS查詢請求,權威域DNS伺服器將域名所對應的IP插入DNS響應報文中,傳送給本地DNS伺服器,本地DNS伺服器將對應的ip快取在伺服器中,如果接下來又有主機要查詢相同的主機名,就不用去查詢了。