首頁>Club>
4
回覆列表
  • 1 # 使用者3081250916598

    高併發程式怎麼實現,一般是多執行緒來處理(執行緒池),執行緒池引數設定這個一般需要一個預估值,透過計算得到,比如你的機器是8核,處理一個請求計算得到用時100ms,一個cpu一秒就是處理10條請求,8核也就是80了,核心執行緒個數和最大執行緒數這個需要一個範圍,建議是cpu核數的整倍數,以及佇列大小這些都是可以計算預估出來,考慮cpu運算特別快,一般這個時候建立執行緒開銷就太大了,不如直接使用執行緒池,只是增加一點cpu執行緒切換開銷,如此一來你完全可以把執行緒開大一點,比如最大執行緒數64個那麼又提高了8倍就是600個請求了,假如每秒有2000個請求同時過來,這個時候你只需要多部署4個服務就是了,如此類推,

    但是當請求又增加的話,你就需要考慮其他因素了,比如消峰問題,請求丟失.可以使用訊息佇列來解決

    一般的業務問題都是以訂單系統來舉例子.除了要解決資料持久化問題還要解決高併發下查詢問題,使用mysql(分庫分表)+elasticSearch來做近實時查詢,業務上去了(壓力都在es這邊的時候)就選擇這個技術mysql(分庫分表)+elasticSearch+hbase了.這個時候elasticSearch就做條件查詢,hbase就做等值查詢.結合起來完美解決問題.

    忘了說redis也可以做點事情,看你怎麼玩了

    好了是時候結束這一波裝逼.

  • 中秋節和大豐收的關聯?
  • 母兔吃兔毛怎麼排出來,母兔排不出兔毛怎麼辦?