資料庫效能

High Availability Database 的架構設計

High Availability Database 的架構設計 這篇文章主要說明資料庫的 High Availability 有哪些技術上的選擇可以採用, High Availability 指的是當機時間最少、99.99x%,當資料庫發生錯誤時, 可以隨時有另外一台資料庫備援,另外,當使用者突然暴增的時候,還能夠正常的服務! 要達到這些目標,技術上有哪些選擇可以採用? 這篇文章提到的相關技術與應用套件主要用 MySQL 為例子。 Clustering 提到 High Availability…

Read More

高負載網站的技術架構 (Java為例)

高負載網站的技術架構 (Java為例) 這篇文章主要說明當一個網站從數千人的線上使用者到數千萬人的連線使用者時, 有哪些架構上可以調整的部分,以符合高流量的網站需求? 網站可以達到數千萬人的使用者所面臨的技術上的挑戰不外乎是:Availability, Scalability, performance等 我們會說明幾種在不需要大改設計的情況下,可以彈性調整的作法。 這些做法不一定要到數千萬人,小型的網站有部分模組有效能瓶頸時也可以參考。 網站的非功能性目標 一個網站除了提供商業功能之外,還會提供非功能性目標。 效能 網站可以提供許多使用者同步平行處理請求。這種情況特別發生在高鐵的線上車票購買的情況。 在短時間內,有大量的使用者連線上限購買,造成系統瞬間的高負載,無法處理的情況下當機。 Availability 就是 99.999%或是 99.99%的目標。 要達到這個目標就必須要做到 “容錯”…

Read More

大型網站的分散式資料處理與效能的提升 Memory Cache

大型網站的分散式資料處理與效能的提升 Memory Cache 這篇文章主要說明大型或是數萬人存取的網站, 如何可以在不修改程式架構下就可以達到分散式資料處理並且提升網站效能? 我們主要介紹的就是 Memory Cache,記憶體快取。 為什麼這是大型網站必備的要素、程式設計要注意什麼、佈署的時候要注意什麼才會達到最佳效能? 這些議題就是這篇文章要討論的範圍。   “memcached” memcached主要用在增加應用系統的存取速度。 傳統應用程式存取資料庫的設計是存取資料庫,資料庫的存取往往會受到isolcation level 的影響,回覆時間比較慢。 因此,我們可以透過 Memory Cached 快取已經存取過的資料,如果資料已經在…

Read More