另外一個回復是簡單的建議,限於代碼層面跟計算資源緊張的情況。
說說我的理論:
1、想要這么大的並發量,申請買幾台比較好的機器,帶寬加到足夠大應該不是問題。
2、網路層的負載均衡考慮一下,這應該也不是啥問題,這么大並發量,別告訴我客戶網路設計很垃圾。高端點的網路設備都沒有。
3、軟體層的結構,看用戶給什麼樣的機器,如果經濟型的機器,考慮分布式運算,分布式再從軟體層面做集群或主從。根據計算密集型還是IO密集型選擇適合的設備。計算密集型的業務,需要強悍的CPU(可以用多C,未必是頻率高的)+內存。IO密集型的業務需要,速度快的存儲,越快越好。有極致要求的考慮固態存儲設備。
4、並發設計,java中主要是線程的應用。能拆分成多任務的運算一定拆成多任務。盡量壓榨cpu資源,現在的工作站不會寫並發程序,真浪費cpu資源。
5、資料庫並發的考量,以前說mysql不如oracle現在還有人有這論調。使用的時候把參數調整到最優狀態。如緩存到內存中數據大小,內存要夠,就把全部表數據載入到內存中。mysql的innodb調整兩三個參數就行。資料庫IO訪問,mysql有測算IO能力的參數,存儲夠好,可以調整到很大。
6、這么大的並發量,選擇適合的緩存器,可以用來緩存熱點數據,或加快分布式運算的IO訪問能力。(磁碟肯定沒內存塊,包括固態)
7、代碼編寫完後,對系統整體進行測試,評估,分析性能瓶頸,優化代碼。
能做到以上標准,tomcat+mysql跑一堆集群也不會慢。