秒殺 http://www.reibang.com/p/f7bc11a95e8a
https://www.kyjszj.com/htzq/2072.html
列表頁(yè)優(yōu)化
https://juejin.cn/post/6844903702545825805
1汪榔、組合key解決方案
2味咳、sql exixt
3椒振、對(duì)于擴(kuò)展表字段的查詢(xún)削葱,只支持or操作悦析,但不支持and操作
如何提高用戶(hù)留存率
提高用戶(hù)粘性
Cms
活動(dòng)表
以u(píng)id為維度分表
Case1 方便查詢(xún)某個(gè)用戶(hù)開(kāi)的活動(dòng)
case2 查詢(xún)某個(gè)用戶(hù)的歷史活動(dòng)
流水記錄表
以activityId為維度分表
Case1 查詢(xún)某個(gè)活動(dòng)的任務(wù)流水記錄
任務(wù)表
數(shù)據(jù)分析模塊
1、以活動(dòng)為維度
查詢(xún)這個(gè)活動(dòng)
按天維度團(tuán)的增量禀酱、用戶(hù)的增量
Case1存在跨表查詢(xún)
2臀防、以個(gè)人為維度,查他參與了哪些活動(dòng)
Case2存在跨表查詢(xún)
Soa模塊
接口
1 開(kāi)團(tuán)接口
?? 日常20qps
?? 凌晨1000qps
?? 618/雙11 5000qps
?? 團(tuán)100萬(wàn)
?? 任務(wù)流水300萬(wàn)
?? 每月拉新? 2萬(wàn)
2 做任務(wù)接口
? ? 助力任務(wù)
? ? 簽到任務(wù)
? ? 下單任務(wù)
? ? 分享任務(wù)
? ? 瀏覽會(huì)場(chǎng)任務(wù)
3 歷史數(shù)據(jù)查詢(xún)
?? 團(tuán)表:以用戶(hù)的維護(hù)進(jìn)行hash分表
?? 方便查用戶(hù)的團(tuán)數(shù)據(jù)
4 分析型
?? 同步到數(shù)據(jù)集市
? ? 重難點(diǎn)梳理
? ? 1毁枯、rpc接口版本升級(jí)問(wèn)題
? ? 現(xiàn)狀
? ? 對(duì)于同名方法慈缔,在藍(lán)綠發(fā)布市可能存在問(wèn)題
? ? 我們可以查看實(shí)質(zhì)上通過(guò)netty等方式傳輸之后在provider可以獲得一個(gè)對(duì)應(yīng)的DecodeableRpcInvocation這樣就回到了包裝前的invoker
? ? 消費(fèi)端
? ? 配置invoker.listener參數(shù)
? ? 在refer完時(shí),發(fā)起check檢查种玛,
? ? 檢查provider是否存在該方法
? ? Attanment:加上test
? ? 提供端
? ? 如果包含test,則直接return
? ? 通過(guò)filter擴(kuò)展實(shí)現(xiàn)
2分組調(diào)用case
? ? 消費(fèi)端
? ? 指定group
? ? 將group作為一個(gè)參數(shù)
?3藐鹤、rpc超時(shí)? 數(shù)據(jù)補(bǔ)償
?? ? ? 默認(rèn)是fix,200線(xiàn)程隊(duì)列容量為1
?? ? ? EagerThreadPoolExecutor適用場(chǎng)景,避免task阻塞在隊(duì)列里等待赂韵,優(yōu)先創(chuàng)建線(xiàn)程
?? ? ? 3.1監(jiān)控看的是task在線(xiàn)程池里面執(zhí)行的時(shí)間娱节,無(wú)法查看在隊(duì)列里面等待的時(shí)間
?? ? ? 發(fā)生的場(chǎng)景
4限流
? 客戶(hù)端限流
? ActiveLimitFilter?
? 限制客戶(hù)端并行度service或者method維度
?? 針對(duì)服務(wù)端,沒(méi)有提供app維度
?? 全局維度TpsLimitFilter
?? ExecuteLimitFilter
?? 限制服務(wù)端并行度service或者method維度
?? tps
? ? 限流相關(guān)問(wèn)題
?4.1祭示、計(jì)數(shù)器算法
?? ? ? ? 描述:周期內(nèi)達(dá)到指定次數(shù)肄满,則觸發(fā)限流。下一個(gè)周期质涛,進(jìn)行清零稠歉,重新開(kāi)始。
?? ? ? ? 問(wèn)題:無(wú)法觸發(fā)臨界問(wèn)題
?4.2汇陆、滑動(dòng)窗口算法
?? ? ? ? 描述:將時(shí)間周期劃分n個(gè)小周期怒炸,分別記錄每個(gè)小周期內(nèi)訪問(wèn)次數(shù),根據(jù)時(shí)間滑動(dòng)刪除小周期
? ? ? ? ? ? ? ? ? ? 窗口滑動(dòng)的過(guò)程中毡代,存在舊的窗口出隊(duì)横媚,新的窗口入隊(duì)
? ? ? ? ? ? ? ? ? ? 優(yōu)點(diǎn):
? ? ? ? ? ? ? ? ? ? 可以很好的處理臨界尖峰問(wèn)題纠炮。
?? ? ? ? 問(wèn)題:
4.3、漏桶算法
? ? ? 描述:請(qǐng)求放入桶中的速度不做限制灯蝴,如果桶滿(mǎn)了恢口,則觸發(fā)限流。
? ? ? ? ? ? ? ? ? 放行的速率是固定的穷躁,通過(guò)這種方式耕肩,達(dá)到限流的目的。
4.4问潭、令牌桶
? ? ? 好處:限制請(qǐng)求的速度猿诸,小于或者等于令牌的生產(chǎn)速度,從而達(dá)到限流的目的
5 消費(fèi)端線(xiàn)程池模型優(yōu)化
? ? 原來(lái)cache線(xiàn)程
? ? 將序列化與反序列化狡忙、io解碼與反解碼放在業(yè)務(wù)線(xiàn)程梳虽,避免阻塞io線(xiàn)程,導(dǎo)致大量創(chuàng)建io線(xiàn)程
6大key優(yōu)化
7 key的失效機(jī)制
8 緩存穿透
? ? 緩存和數(shù)據(jù)庫(kù)都沒(méi)有數(shù)據(jù)灾茁,導(dǎo)致數(shù)據(jù)壓力過(guò)大
?? ? 防止暴力攻擊
9 緩存擊穿
? ? 是指一點(diǎn)熱點(diǎn)的key, 不停的抗大并發(fā)窜觉,某一時(shí)間失效,導(dǎo)致大量請(qǐng)求訪問(wèn)數(shù)據(jù)庫(kù)
? ? 緩存沒(méi)有數(shù)據(jù)北专,但是數(shù)據(jù)庫(kù)有數(shù)據(jù)
10 緩存雪崩
?? ? 大量數(shù)據(jù)過(guò)期禀挫,且查詢(xún)量過(guò)大,引起數(shù)據(jù)庫(kù)壓力過(guò)大
11 緩存預(yù)熱
12?
? ? 緩存不一致問(wèn)題
? ? 更新數(shù)據(jù)庫(kù)拓颓,
? ? 1)刪除緩存
? ? 2)更新緩存