官术网_书友最值得收藏!

1.1.2 良好的架構設計有助于避免bug的產生

架構設計也是經驗的總結。一般來說,一個成功的商業化游戲服務器項目,它的架構都是由從事游戲服務器開發多年、經驗豐富的人設計開發的。通過經驗的總結,把容易出錯的公共部分使用架構來規避,并且通過嚴密的測試,最終實現消除隱患。

比如涉及網絡通信的問題,有的開發人員在設計的時候,只考慮接收客戶端的消息,并且實現正常返回消息即可,而沒有考慮到多線程處理消息,導致數據不一致,出現一些莫名其妙的問題。特別是以Web服務作為服務器的時候,因為Web服務底層接收的消息會被放到一個固定大小的線程池中,所以每個HTTP請求在Controller中處理的時候,都可能在不同的線程里面。如果出現并發請求,就有可能導致數據錯誤。

在架構設計中可以提交預知并解決這個問題。比如給同一個用戶請求的消息加鎖或者把請求消息分配到固定的消息隊列中,由另外的線程按順序取出消息并處理。這樣在處理業務的時候,就不需要擔心請求并發問題了,防止開發業務時考慮不周而產生bug。

主站蜘蛛池模板: 阿荣旗| 和硕县| 历史| 招远市| 嵊州市| 莱州市| 湘潭市| 承德县| 长顺县| 太原市| 巫溪县| 丘北县| 丰都县| 聂拉木县| 镇江市| 西充县| 饶平县| 崇文区| 子长县| 威远县| 凤山县| 保亭| 志丹县| 荣昌县| 临沭县| 玛多县| 平遥县| 南木林县| 临清市| 屯留县| 琼结县| 灵石县| 霍州市| 大冶市| 吉木萨尔县| 灌南县| 贵州省| 姚安县| 塘沽区| 临城县| 理塘县|