同步:
1 rest http協議
2 rpc tcp協議
非同步:字典項 、選單配置、系統引數、登入token、session
高效能對於乙個請求,耗時幾百毫秒查出乙個結果,然後這個操作員就用了一次,這很浪費。
而同乙個不經常改變的結果,從快取取,只需要幾毫秒。
高併發redis官方測評資料,每秒10w左右的讀寫,而mysql遠遠達不到這個數量。
快取與資料庫雙寫不一致問題
如何保證快取與資料庫的雙寫一致性。
1 讀請求和寫請求序列化,串到乙個記憶體佇列裡去。(序列可以解決不一致情況,但是會導致系統吞吐量降低,用比正常多幾倍的機器去支撐線上的乙個請求)
2 cache aside pattern
最經典的快取+資料庫讀寫的模式。
單一表的資料量太大,達到幾百萬的時候,sql執行效能就會變差,這個時候就需要把乙個表的資料拆到多個表中。
以一般經驗來看,乙個資料庫最多支撐2000併發,就需要擴容,這個時候把乙個資料庫的資料拆分到多個多個庫中,承受的併發將提高多倍
dds 華為自研
沒有開源,這個就不多說了
sharding-jdbc
當當網開源的,屬於client層方案,支援分庫分表,讀寫分離,分布式id生成,柔性事務
mycat
是阿里的cobar改良而來,屬於proxy層方案
首先,mycat和sharding-jdbc這兩種中介軟體,我並沒有用過
根據網上的回答,整理一下
shardingjdbc:
優點在於不用部署,運維成本低,不需要**層的二次**請求,效能高,缺點在於耦合,如果遇到公升級,各個系統都需要重新公升級再發布,各個系統都耦合sharding-jdbc的依賴
mycat
這種proxy層的缺點在於需要部署,自己運維一套中介軟體,運維成本高,好處是對於各個專案是透明的,如果遇到公升級,自己中介軟體那裡搞就行
水平拆分和垂直拆分同時用。
首先使用垂直拆分,化為兩個模組,乙個是基本不變的公共資源庫,裡面存放選單 字典 系統引數之類的資料
然後把第一次水平拆分稱為一級分庫,根據新政區劃這個字段,把全國的資料劃分為幾部分,然後放到不同的庫里。
但是有的進行一級分庫之後,從省份來看,有的省份的資料依然是大的,這個時候就進行二級分庫,也就是把省裡的資料進行第二次水平拆分。我們制定乙個二級分庫字段,進行hash一下均勻分散,這樣可以平均分配每個庫的資料量和請求壓力
需求分析
設計文件(powerdesigner設計好資料模型,然後建表,分析需要多少個類,先起好名字)
詳設文件(後端介面開發,先提前寫好偽**,精確到對應entity和三層結構)
編碼開發(補充詳細邏輯,完成後端介面開發,本地postman自測,然後再開發前台)
showcase
測試改bug
前端經典面試題a 和 a 總結及自我解答(1)
1.如果 a 1 b a a 1 a a a a a 並且這時候a 解答 先說 a 首先求a 有乙個極簡單的方法,個人總結啊 把 a 和 a 看成是同一種特殊型別的東西,有幾個這種特殊型別的東西,則初始值就加上幾個1 看一看一共有6個 a或a 這樣的特殊型別,則a 1 6 7 至於求和,a就是正常中...
Unity3D面試題彙總
1.請描述遊戲動畫有哪幾種,以及其原理。2.alpha blend 工作原理 3.寫光照計算中的diffuse的計算公式 4.lod是什麼,優缺點是什麼 5.兩種陰影判斷的方法工作原理 6.mipmap是什麼?作用?7.用u3d實現2d遊戲,有幾種方式?答 一種用ui實現 gui,ngui.一種是採...
Unity3D面試題彙總
1.請描述遊戲動畫有哪幾種,以及其原理。2.alpha blend 工作原理 3.寫光照計算中的diffuse的計算公式 4.lod是什麼,優缺點是什麼 5.兩種陰影判斷的方法工作原理 6.mipmap是什麼?作用?7.用u3d實現2d遊戲,有幾種方式?答 一種用ui實現 gui,ngui.一種是採...