前言
昨晚救火到兩三點(diǎn),早上七點(diǎn)多醒來,朦朧中醒來發(fā)現(xiàn)電腦還開著,趕緊爬起來看昨晚執(zhí)行的SQL命令結(jié)果。由于昨晚升級(jí)了阿里云的RDS,等了將近兩個(gè)小時(shí) 還在 升降級(jí)中,早上阿里云那邊回復(fù)升級(jí)過程中出現(xiàn)異常,正在加緊處理。。。有點(diǎn)蛋疼
項(xiàng)目介紹
這個(gè)項(xiàng)目主要分為WEB、WEB-Manager、WEB-API、APP(ANDROID、IOS) 。
開發(fā)語言主要是ASP.NET
數(shù)據(jù)庫MySql
架構(gòu)采用了ASP.NET +EF+ORM Unity依賴注入 采用了DDD的部分實(shí)踐
ORM使用的是AutoMapper
使用了Redis緩存
Log4net記錄文件日志,剛開始使用Mongodb記錄日志,用了一段時(shí)候后取消了。
WEB端使用了angularjs
API層通過JSON數(shù)據(jù)與APP進(jìn)行交互,用戶狀態(tài)通過access_token進(jìn)行傳遞
數(shù)據(jù)庫層目前是基于倉儲(chǔ)(Repositor)模式實(shí)現(xiàn)的
剛開始項(xiàng)目急于上線多數(shù)采用Linq +lambda 的查詢方式,在實(shí)踐過程中發(fā)現(xiàn)變態(tài)的業(yè)務(wù)調(diào)整和快速的請(qǐng)求響應(yīng),將其復(fù)雜的查詢改成了原生SQL,通過Context.DataBase.SqlQuery 執(zhí)行
其他的技術(shù)就不一一介紹了
目前訪問量較大的是APP端, 最大并發(fā) 1300+
主要是API的壓力比較大,日均 100W+ 請(qǐng)求,API 目前 部署在Windwos server 2012上, 接口在50個(gè)以上
數(shù)據(jù)庫使用的是阿里云的單機(jī)MySql RDS 5.6 版本,10盒12G,連接數(shù)2000,iops 6000
目前 單表最大是8000W+數(shù)據(jù)。物理文件300G,APIlog日均100W+,API與業(yè)務(wù)系統(tǒng)完全獨(dú)立,除了DBLog日志還有Log4g.net生成的文件日志。
目前采用的是阿里云的負(fù)載,一主一從 購(gòu)買的阿里云負(fù)載 兩臺(tái)應(yīng)用均為 8盒16G ,10M帶寬 ,資源文件上了CDN。
主的上面部署了WEB端和WEB管理后臺(tái),從的上面只有API。
數(shù)據(jù)庫遇瓶頸
最近用戶量突破10+以上,最大并發(fā)1300+ 從前天晚上開始數(shù)據(jù)庫CPU居高不下,一時(shí)達(dá)到100%臨界點(diǎn),導(dǎo)致很多SQL命令執(zhí)行發(fā)生錯(cuò)誤,鏈接拒