服務端高併發分佈式架構演進之路「轉」

1. 概述

本文以淘寶作為例子,介紹從一百個到千萬級併發情況下服務端的架構的演進過程,同時列舉出每個演進階段會遇到的相關技術,讓大家對架構的演進有一個整體的認知,文章最後彙總了一些架構設計的原則。



特別說明:本文以淘寶為例僅僅是為了便於說明演進過程可能遇到的問題,並非是淘寶真正的技術演進路徑

2. 基本概念

在介紹架構之前,為了避免部分讀者對架構設計中的一些概念不瞭解,下面對幾個最基礎的概念進行介紹:

  • 分佈式
    系統中的多個模塊在不同服務器上部署,即可稱為分佈式系統,如Tomcat和數據庫分別部署在不同的服務器上,或兩個相同功能的Tomcat分別部署在不同服務器上
  • 高可用
    系統中部分節點失效時,其他節點能夠接替它繼續提供服務,則可認為系統具有高可用性
  • 集群

    一個特定領域的軟件部署在多臺服務器上並作為一個整體提供一類服務,這個整體稱為集群。如Zookeeper中的Master和Slave分別部署在多臺服務器上,共同組成一個整體提供集中配置服務。在常見的集群中,客戶端往往能夠連接任意一個節點獲得服務,並且當集群中一個節點掉線時,其他節點往往能夠自動的接替它繼續提供服務,這時候說明集群具有高可用性
  • 負載均衡
    請求發送到系統時,通過某些方式把請求均勻分發到多個節點上,使系統中每個節點能夠均勻的處理請求負載,則可認為系統是負載均衡的
  • 正向代理和反向代理
    系統內部要訪問外部網絡時,統一通過一個代理服務器把請求轉發出去,在外部網絡看來就是代理服務器發起的訪問,此時代理服務器實現的是正向代理;當外部請求進入系統時,代理服務器把該請求轉發到系統中的某臺服務器上,對外部請求來說,與之交互的只有代理服務器,此時代理服務器實現的是反向代理。簡單來說,正向代理是代理服務器代替系統內部來訪問外部網絡的過程,反向代理是外部請求訪問系統時通過代理服務器轉發到內部服務器的過程。

3. 架構演進

3.1 單機架構


原文地址:https://segmentfault.com/a/1190000018626163


分享到:


相關文章: