回覆列表
  • 1 # 木星上的程式設計師

    讀執行緒遠遠大於寫執行緒,那麼這個系統可以算上是OLAP型別的系統,併發問題需要具體問題具體分析。

    一、資料庫層面

    1、從查詢SQL層面去最佳化,結合業務,儘量做到最優,結合業務建議最優索引,儘量使用覆蓋索引,或是有排序場景則利用索引本身的排序。

    2、從引數配置最佳化,資料庫的cache pool,和各種buffer size要設定合理,避免非熱點資料汙染熱點資料。

    3、從架構層面最佳化,一主多從,讀寫分離,也可使用資料庫代理Proxy或是Mycat等做請求的負載均衡,資料量比較大時,做好資料庫的分庫、分表、分割槽等。

    二、快取層

    1、快取分為本地快取,遠端快取,本地快取如程序內的Map、List、Queue等,這種快取速度最快的,遠端快取比較常見有Memecached、Redis等因為更新少,熱點資料儘量儲存在快取中,應用層直接訪問快取層,快速返回資料,不過要注意快取的更新機制。

    2、適當時,也需要採用分散式架構。

    三、應用層

    1、應用本身做好最佳化能夠極大地增加併發數,如運用無鎖佇列,CAS、分段鎖技術、執行緒池等都可以大大提高併發性。

    2、業務上的最佳化,複雜業務簡單化,拆分,編排業務。

    2、應用層採用分散式部署、避免單點故障

    四:代理層

    2、靜態資源使用CDN加速

  • 中秋節和大豐收的關聯?
  • 《蒼藍誓約》足以被稱為是“好遊戲”嗎?