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