springcloud中的零碎知識
1.ES採用的是樂觀鎖機制(帶相關的版本號)
2.
3.ES批量匯入:_bulk批量匯入時,一個的錯誤不會導致後面的錯誤,不會像mysql一樣,回滾
4.term和match的區別:文字的匹配用match;單個詞的匹配,如數值,用term.
5.warning:6.0以後type型別要被拋棄了。
6.在ES中存資料:從資料庫中查出,然後封裝成bean,傳送給ES。ES的查詢效能更好。
7.正向代理是面向客戶端的(隱藏客戶端資訊),反向代理是面向伺服器的(遮蔽內網伺服器資訊,負載均衡訪問)。
8.如果直接讓nginx直接代理服務的話,不用閘道器產生的問題:
1.第一個問題,服務的數量是隨時可以複製新增的,是動態變化的,nginx要動態修改這的配置;如果是讓閘道器來,閘道器可以動態地從註冊中心中搜取服務(服務直接註冊進去就行)。
9.nginx代理給閘道器的時候,會丟失請求的host資訊。
可以在location / {
proxy_set_header Host $host;
proxy_pass http://gulimall;
}
10.路由匹配原則:粗粒度的放在後面,精粒度的放在前面
11.
12.
業務的優化:
1.db資料庫優化:加索引,多次查的話,可以先把這個的結果查出來,後面子函式重複利用
2.模板的渲染速度,開快取
13.什麼資料適合放入快取:
1.及時性、資料一致性要求不高的
2.訪問量大且更新頻率不高的資料(讀多,寫少)。
14.快取穿透指的是:查詢一個不存在的資料,由於快取一直不命中,大量請求過來,對資料庫大量的查詢操作,資料庫瞬時壓力增大,最終導致崩潰。
解決;null結果快取,並加入短暫過期時間。
加鎖:雙重檢驗,得到鎖以後,再次判斷redis中是否有資料了。
15.害怕分散式鎖一直被一個程序佔用(宕機),設定鎖的自動過期時間,即使應用沒有及時刪除,也會自動刪除。
16.setnx(站好位置了)設定好後,正要去設定過期時間,宕機。又死鎖了。
解決:設定過期時間和佔位必須是原子的。redis支援使用setnx ex命令
17.
18.