Hogan

成大電機畢業,現職外商產品工程師,我的工作內容 與全端軟體開發和手機app開發相關。 主要分享一些程式碼、軟體教學、經驗交流。 Instagram : hogan.tech

system-design-系統設計12-CDN-基礎概念與設計-how-cdn-work-hogantech

CDN 基礎概念與設計 – 系統設計 12

CDN 是一組根據地理位置去做置放的代理伺服器(Proxy Server)。其中,代理伺服器是客戶端和伺服器之間的中間伺服器,代理伺服器也會放置在網路邊緣(Network Edge)。也因為網路邊緣靠近最終用戶,代理伺服器的放置有助於透過減少延遲和節省頻寬來快速將對應的資料傳送給使用者。CDN 除了作為簡單的代理伺服器之外還,也可以透過一些設定以及操作讓他們變得更有效率。

CDN 基礎概念與設計 – 系統設計 12 Read More »

system-design-系統設計11-鍵值資料儲存-key-value-store-introductoin-to-database-fundamentals-hogantech

Key-Value Store 鍵值資料儲存解說 – 系統設計 11

鍵值資料儲存(Key-Value Store)是一種分散式雜湊表(Distributed Hash Table),其中DHT是一種去中心化儲存方式,提供類似雜湊表的查找、儲存。雜湊表(Hash Table) 也是一個 Abstract Data Type (ADT),它的優點是通常可以用比較快的時間完成 Search operation 的動作。

Key-Value Store 鍵值資料儲存解說 – 系統設計 11 Read More »

system-design-系統設計10-資料複製-data-partitioning-introductoin-to-database-fundamentals-hogantech

Data Partitioning 資料分區是什麼? – 系統設計 10

資料分區 (Data Partitioning) 是將資料庫中的資料分割成更小、更易於管理的子區塊的過程。這些子區塊稱為分區 (Partition)。資料分割可以根據多種因素進行,例如:時間、客戶 ID 或產品類別。為何要進行資料分區呢?對於任何不對擴增的系統,資料量也會持續增長,並且針對資料庫的讀寫流量也會越來越大。

Data Partitioning 資料分區是什麼? – 系統設計 10 Read More »

system-design-系統設計09-資料複製-data-replication-introductoin-to-database-fundamentals-hogantech-hoganblab

Data Replication 如何優化資料庫?- 系統設計 09

資料複製(Data Replication)是一種有效解決瓶頸的方法,可以通過在多個節點上複製資料來提高資料庫的效能、可擴展性和可用性。本文將介紹資料複製的三種主要模型:主從複製(Single-leader replication)、多領導者複製(Multi-leader replication)和點對點複製(Leaderless replication),並分析它們的優缺點。

Data Replication 如何優化資料庫?- 系統設計 09 Read More »

system-design-系統設計08-資料庫基礎介紹-introductoin-to-database-fundamentals-hogantech-hoganblab

資料庫基礎介紹 – 系統設計 08

什麼是資料庫?資料庫是結構化資訊或資料的有組織的集合,通常以電子方式儲存在電腦系統中。 資料庫通常由資料庫管理系統(DBMS)控制。資料和 DBMS 以及與其關聯的應用程式一起被稱為資料庫系統,通常簡稱為資料庫。
當今運行的最常見資料庫類型中的資料通常以一系列表中的行和列進行建模,以提高處理和資料查詢的效率。 然後可以輕鬆存取、管理、修改、更新、控制和組織資料。 大多數資料庫使用結構化查詢語言(SQL)來寫入和查詢資料。

資料庫基礎介紹 – 系統設計 08 Read More »

system-design-系統設計07-系統設計元件-what-is-load-balancer-hogantech-hoganblab

負載平衡器解說 – 系統設計 07

負載平衡器(Load Balancer)是什麼?負載平衡器主要是將所有用戶端的請求,根據當前伺服器負載的情況,進行分配到對應的伺服器。這樣的好處是避免伺服器過載或是崩潰。不過這邊也可以思考一下,如果當前系統的流量不高,大約只有每秒幾千個請求,則可能不太需要負載平衡器,畢竟一個系統越複雜,則需要考慮的事情越多。

負載平衡器解說 – 系統設計 07 Read More »

system-design-系統設計06-系統設計元件-what-is-dns-hogantech-hoganblab

DNS 是什麼?網域名稱系統介紹 – 系統設計 06

什麼是 DNS? 網域名稱系統 (DNS) 會將可以閱讀的網域名稱對應到機器可讀的 IP 位址,例如:google.com 對應的IP為142.250.191.78 。當使用者在瀏覽器中輸入網域名稱時,瀏覽器必須透過 DNS 將網域名稱轉換為 IP 位址。一旦獲得所需的 IP 位址,使用者的請求就會轉送到目標伺服器。

DNS 是什麼?網域名稱系統介紹 – 系統設計 06 Read More »

system-design-系統設計05-系統設計元件-building-block-hogantech

系統設計元件介紹 Building Block – 系統設計 05

系統元件是系統設計的基本模組塊,它們可以被組合起來,用來建構出複雜的軟體系統。這邊也來複習一下系統設計基本概念,系統設計是軟體工程中的一個重要環節,它涉及到軟體系統的整體架構和設計。一個好的系統設計可以使軟體系統更加可靠、可擴展和易於維護。

當然如果要使用這些元件去設計系統,勢必需先了解到底有哪些設計元件?每個設計元件代表的意義又是什麼?這一篇文章會簡介每一個系統元件,後面的篇章則是會詳細講解每一個元件的細節以及應用。

系統設計元件介紹 Building Block – 系統設計 05 Read More »

system-design-系統設計04-封底計算-back-of-the-envelope-hogantech-hoganblab

Back-of-the-envelope 封底計算 – 系統設計 04

Back-of-the-envelope 又稱為封底計算,是用簡單估算來計算複雜問題的近似值的方法。

這邊也複習一下,分散式系統由透過網路連接的運算節點組成。這些節點可以是各種類型的伺服器,例如網頁伺服器、應用程式伺服器和儲存伺服器。

在設計分散式系統時,了解每個節點可以處理的請求數量非常重要。同時我們也可以確定所需的節點數量以及流量,因此我們會使用 Back-of-the-envelope 來去計算我們的粗估值,最終來設計我們所需的系統。

Back-of-the-envelope 封底計算 – 系統設計 04 Read More »

zh_TW繁體中文