伺服器錯題集

2021-07-31 06:59:21 字數 925 閱讀 4519

*****===數值溢位問題*****===

對於客戶端上傳的敏感引數,比如金錢,經驗等,伺服器通常會驗證正負值,防止扣負值的情況發生。

在此基礎上,要注意另外兩種高階的溢位情況:

案例1:  玩家有n點屬性可分配點,可以隨機分配給各個基礎屬性。客戶端上傳每種基礎屬性分配情況,伺服器判斷每個分配點為非負數,判斷總分配點總和小於等於可分配點數

問題數值 :分配屬性1的值 = 二十億,分配屬性2的值 = 二十億。

伺服器判斷:二十億》=0 ; 兩個二十億相加,得到乙個溢位的負數,負數<= 可分配點數10 ; 判斷條件都成立

結果:屬性被刷爆

案例2:  玩家購買物品,帶物品個數引數

物品個數沒有限制時,產生乘數溢位

伺服器計算消耗金幣 = 物品單價 * 物品個數  結果溢位

應對方案:

方案1:  多加判斷,對於和值和乘積,都判斷正負

方案2:  c#使用關鍵字checked,溢位時丟擲overflowexception異常

專案原來使用mysql,啟動伺服器時,匯入資料邏輯為:

每次讀取一萬條資料到記憶體:select * from tablename where id > @startid limit 10000

取到最後乙個id賦值給@startid,繼續讀取下面的資料。

出錯原因:

mysql是順序讀取,不會產生問題

spider由於是分布式系統,幾個子節點並行且無序上傳讀取的資料,滿足10000條時停止。此時取出的資料不保證連續,導致有部分資料載入失敗(希望取出1 2 3 4,實際取出 1 3 4 6,下一輪從》6取資料,丟失 2 5)

應對方案:修改查詢語句 select * from tablename where id > @startid order by id asc limit 10000

不定期更新。。。

基於IBM BladeCenter伺服器整合方案

ibm bladecenter 是名副其實的刀片中心,因為在乙個7u的機箱中不僅能容納14臺刀片伺服器外,還能夠整合兩個20口光纖交換機,兩個18口7層乙太網交換機,四個2000瓦電源模組,2個14口kvm和兩個大功率集中冷卻風扇。ibm刀片中心通過革新的模組技術幫助客戶在當前搞競爭的it環境中提供...

機器學習錯題集

1.線性分類器有三大類 感知器準則函式 svm fisher準則,而貝葉斯分類器不是線性分類器。感知器準則函式 代價函式j w x w0 分類的準則是最小化代價函式。感知器是神經網路 nn 的基礎,網上有很多介紹。svm 支援向量機也是很經典的演算法,優化目標是最大化間隔 margin 又稱最大間隔...

C C 練習錯題集

單選題 若int 佔 2 個位元組,char 佔 1 個位元組,float 佔4 個位元組,sizeof xc 大小是 struct stu class char xm 8 float cj xc sizeof xc 大小是 20 記憶體對齊規則 結構體的總大小為結構體最寬基本型別的整數倍 聯合體裡...