回覆列表
  • 1 # 暗黑程式設計師

    PHP語言開發高併發的網站,需要加快取,複雜邏輯走訊息佇列非同步處理,mysql查詢必須走索引,還搞不定就加機器分流,mysql配置升高並且一主多從,使用codis叢集,增加訊息佇列的消費者,如果還搞不定就隨機拒絕請求,當然這是最後的退路。

    快取

    快取是避免業務查詢過多的請求mysql,導致業務不可用,根據場景來判斷是否需要使用codis叢集,如果併發量沒有達到某個級別,16G的redis也可以,但是要避免redis在高併發下容易發生的快取穿透,儘量做成高可用,並保證快取實現的命中率

    訊息佇列

    這也是高併發情境下的殺手鐧,削峰填谷,將耗時的業務邏輯直接以佇列的形式非同步慢慢處理,防止請求過度積壓,導致的伺服器不可用。

    mysql最佳化

    有些場景下必須查詢mysql的,也應該走索引,避免多表聯合查詢,甚至mysql的事務隔離級別都儘量的降低,或者直接去掉事務,採用最終一致性的補償機制。升級mysql的配置,核心數和記憶體的提升對查詢速度的最佳化是顯而易見的,最好能一步到位的走一主多從,查詢路由到從伺服器上。

    隨機拒絕請求

    這不是開玩笑,我們必須保證伺服器可用,寧願拒絕掉一些請求,也不能讓伺服器大量請求阻塞,最終導致大家都用不了。

  • 中秋節和大豐收的關聯?
  • 古代命運很順利的文人有哪些?