高併發系統的開發注意事項

2021-06-23 08:40:07 字數 723 閱讀 2796

商用伺服器經常因為一些商業的原因被很多為生活苦苦奮鬥的hack們掃蕩。對於乙個要支援高併發的系統來說,在開發階段有幾個事情需要我們注意:

1、如果你用hibernate,注意你的主鍵獲取不要用increment了,那玩意在併發的時候給你帶來主鍵約束錯誤,還是考慮使用sequence之類的主鍵策略吧

2、定時任務的考慮,並不是所有的定時任務都需要考慮併發的情況。但是例如定時些資料庫的時候,如果你做負載均衡了,每個伺服器都會寫,是否造成重複寫髒資料就需要看業務邏輯而定了。例如:你要定時給某個郵箱傳送郵件,負載的時候,每個機器都會做相同的操作,定時任務會造成多個機器都傳送郵件。(你可以考慮將某些定時任務移動到儲存過程或者使用單獨的定時伺服器來做。)

3、使用二級快取的時候注意,負載均衡的時候,你的二級快取對資料的處理是否還符合業務邏輯?

解釋下你常見的負載均衡:就是多個伺服器執行相同的**,我們通過tomcat將請求均衡的分布在某個伺服器上。如果你使用increment策略,在開發組內多個成員在各自的開發機器上進行資料新增的時候,經常會出現主鍵約束錯誤

定時任務:有些定時任務在多台機器做負載均衡的時候不適合使用,你可以考慮將任務使用乙個鏈結請求處理,然後在做乙個單獨的請求鏈結的專案,定時請求鏈結。這樣做的好處是:即利用了系統的負載均衡,同時還利用了系統本身的業務邏輯。

伺服器效能指標: 

qps每秒查詢率(query per second) :每秒查詢率qps是對乙個特定的查詢伺服器在規定時間內所處理流量多少的衡量標準

併發程式設計注意事項

一般在執行批處理的場景下,如果序列單執行緒的效率低,可以考慮併發,但是需要注意一些事情。首先需要確定,單個執行緒執行的場景下,耗時的 塊,一般的做法是通過列印執行時間,然後優化到合適的地步。採用多執行緒來執行任務,由於併發的不確定性以及併發引入的複雜性,要能夠保證併發處理的結果是正確的,是準確的。既...

尿酸高的注意事項

1 適當有氧運動,一定不可以做劇烈的運動,以免關節過勞。最好選擇游泳 太極拳 桌球之類的有氧運動,以此減輕體重。2 多喝白開水或淡茶水,每天的排尿量要控制在2000ml左右是最好的。可以用薏公尺粥來降尿酸,少喝熱性的飲料等。3 多吃素,但並非所有的素食都要多吃,多吃紫皮茄子 上海青 生菜,蓮花白。青...

開發注意事項

一 編碼方面 1.ui層面的東西,盡量畫素級復現設計稿,做完之後在ie,firefox,chrome中預覽一遍,確認沒有問題。2.拿到設計稿之前,對業務需求要有所了解,拿到設計稿之後進行推演,檢查互動是否有誤,如果有誤再三確認之後再開始做。3.元件書寫方式,如果輸入的資料能保持一致,則元件裡面處理資...