購物車下單高並發怎麼解決
① java電商項目面試官問我高並發多線程怎麼解決
這個很簡單,高並發有多種解決方法:
1、從代碼上分入手,必須得保證代碼沒有冗餘,專不要有屬廢代碼;
2、從伺服器上入手,高並發一台伺服器並發量有限,我們可以採用多台伺服器來分擔壓力;
3、從存儲方便入手,像我們一般高並發但是數據卻可以不用存到資料庫中的,我們就存在內存中,因為讀內存的速度是資料庫的N倍。
② 如何解決高並發問題
建議採用緩存處抄理,按照你說的這種數據量,基於redis的緩存完全可以滿足,存取速度可以10W+的,另外,擬採用的hashMap 是ConcurrentHashMap還是其他,頁面展示是增量查詢還是直接所有的再查詢一次,socket數據接收你是用的netty還是mina,這都需要經過仔細的斟酌考慮設計的。有這么大的並發的需求,完全可以考慮做分布式集群的,估計這只是領導想要的目標吧
③ 項目中怎麼控制多線程高並發訪問
項目中控制多線程高並發訪問的方法和詳細的操作步驟如下:
1、首先,明確信號量Semaphore的用法,然後創建一個新項目,new--> file--> class,並根據需要命名它,這里命名為semaphoreDemo,如下圖所示。
④ 高並發是什麼和如何解決
大量的用戶在同一時間點訪問同一個網站,這就是高並發。解決沒那麼簡單的,有很多方面要顧及,涉及到很多技術。
⑤ 如何控制高並發,比如現在商品表10個商品,有10000個人同時下單購買,這個時候我們如何處理這種情況
這種時候可以通過隊列,比如每次有人下單,就丟到隊列裡面,然後隊列里版面校驗庫存,這樣有並權發的時候也只是多插入了隊列,但是隊列裡面是依次執行的。隊列的話可以參考下redis如何做隊列處理。有php相關擴展的,java的話我就不清楚了。
⑥ 今天被問到怎麼解決高並發問題
建議採用緩存處理,按照你說的這種數據量,基於redis的緩存完全可以滿足,版存取速度可以10W+的,另權外,擬採用的hashMap 是ConcurrentHashMap還是其他,頁面展示是增量查詢還是直接所有的再查詢一次,socket數據接收你是用的netty還是mina,這都需要經過仔細的斟酌考慮設計的。有這么大的並發的需求,完全可以考慮做分布式集群的,估計這只是領導想要的目標吧
⑦ java高並發,如何解決,什麼方式解決,高並發
高並發系統的設計需要注意一下幾點:
用jprofiler等工具找出性能瓶頸,減少額外的開銷。
盡量使用緩存,包括用戶緩存,信息緩存等,多花點內存來做緩存,可以大量減少與資料庫的交互,提高性能。
優化資料庫查詢語句,減少直接使用hibernate等工具的直接生成語句(僅耗時較長的查詢做優化)。
優化資料庫結構,多做索引,提高查詢效率。
統計的功能盡量做緩存,或按每天一統計或定時統計相關報表,避免需要時進行統計的功能。
能使用靜態頁面的地方盡量使用,減少容器的解析(盡量將動態內容生成靜態html來顯示)。
硬體上就是提高伺服器性能,提升允許最大訪問量,代碼上面可以使用連接池的方式,更合理的規劃連接,提高連接的有效利用率
負載均衡(軟體負載均衡、硬體負載均衡)
分布式資料庫(資料庫主從分布、資料庫分割、資料庫緩存)
可以採用nginx或者lvs軟體工具,他好像最高支持65535的並發訪問。
實實在在太大的話,終極解決方式隊列方式,通過mq一個一個排隊方式,跟12306一樣。
⑧ 兩個用戶同時購買一件商品如何解決高並發
誰有錢誰買,還想用又沒錢買,想五八掉餡餅,雖然不知道你長什麼樣,但是你想得美。