前言

昨晚救火到兩三點(diǎn),早上七點(diǎn)多醒來,朦朧中醒來發(fā)現(xiàn)電腦還開著,趕緊爬起來看昨晚執(zhí)行的SQL命令結(jié)果。由于昨晚升級了阿里云的RDS,等了將近兩個(gè)小時(shí) 還在 升降級中,早上阿里云那邊回復(fù)升級過程中出現(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ù)庫層目前是基于倉儲(Repositor)模式實(shí)現(xiàn)的

剛開始項(xiàng)目急于上線多數(shù)采用Linq +lambda 的查詢方式,在實(shí)踐過程中發(fā)現(xiàn)變態(tài)的業(yè)務(wù)調(diào)整和快速的請求響應(yīng),將其復(fù)雜的查詢改成了原生SQL,通過Context.DataBase.SqlQuery  執(zhí)行

 

其他的技術(shù)就不一一介紹了

目前訪問量較大的是APP端, 最大并發(fā) 1300+

主要是API的壓力比較大,日均 100W+ 請求,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ù)載,一主一從  購買的阿里云負(fù)載      兩臺應(yīng)用均為 8盒16G ,10M帶寬 ,資源文件上了CDN。

主的上面部署了WEB端和WEB管理后臺,從的上面只有API。

數(shù)據(jù)庫遇瓶頸

        最近用戶量突破10+以上,最大并發(fā)1300+  從前天晚上開始數(shù)據(jù)庫CPU居高不下,一時(shí)達(dá)到100%臨界點(diǎn),導(dǎo)致很多SQL命令執(zhí)行發(fā)生錯(cuò)誤,鏈接拒