今天群裡有個朋友說他們醫院項目采用直連數據庫,高峰時期sqlserver的連接數達到7000多,於是我准備做個用diocp做個demo,服務端用連接池。白天的時候我在想,並發如果7000個。如果用diocp做三層服務器,連接池應該在100個左右。今天晚上奮斗了一晚上,准備把測試過程中碰到的問題總結一下。
所有的代碼測試代碼寫完後,准備開始測試,配置後服務端的連接池(config\dbpool.config)
"main""host": ".""user": "sa""password": "efsa""database": "EF_DATA"
配置中main為連接池中連接的ID<通過id獲取連接>
在客戶端編寫測試線程
= TClientDataSet.Create( ( self.Terminated) ( __stop) ] := +//每+ + TesterCode + ;
開始測試100,個線程,在筆記本上測試
問題來了
後來把客戶端代碼修改下<刪除下面的代碼>。發現一切正常,還好不是服務端的問題,diocp還是經的住考驗。
//每執行一次進行異常關閉連接
FRDBOperator.Connection.close;
就算有7000個連接估計同時在執行數據庫的也不過就幾百個而已。處理起來應該是沒有問題的。明天給群裡的朋友測試下。多弄幾台客戶端測試下