本發(fā)明涉及海量并發(fā)注冊解決方法,屬于海量并發(fā)注冊應用。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)的發(fā)展和規(guī)模的擴大,網(wǎng)絡(luò)流量也隨之增長,用戶量的的不斷增長意味著更多的活躍用戶和線索,此時接口性能的穩(wěn)定性變的至關(guān)重要,在這種情況下,如何在舉辦大型活動時,確保突增新用戶成功注冊成了一個及其重要的環(huán)節(jié)。
2、目前,業(yè)界采用sentinel+gateway的方式來限流熔斷,結(jié)合自身項目項目需求自研海量并發(fā)注冊解決方案,確保在qps高于閾值時用戶能正常注冊并訪問app,且常規(guī)注冊流程問題存在以下缺點,不能支持高并發(fā)注冊,流量有突增時會導致用戶注冊失敗,體驗很差,失敗用戶可能產(chǎn)生不完整的臟數(shù)據(jù)影響再次注冊,無法注冊導致用戶無法參加一些需要登錄態(tài)的活動,造成不好的用戶體驗。
技術(shù)實現(xiàn)思路
1、在本實施例中提供了海量并發(fā)注冊解決方法用于解決現(xiàn)有技術(shù)中業(yè)界采用sentinel+gateway的方式來限流熔斷,結(jié)合自身項目項目需求自研海量并發(fā)注冊解決方案,確保在qps高于閾值時用戶能正常注冊并訪問app,且常規(guī)注冊流程問題存在以下缺點,不能支持高并發(fā)注冊,流量有突增時會導致用戶注冊失敗,體驗很差,失敗用戶可能產(chǎn)生不完整的臟數(shù)據(jù)影響再次注冊,無法注冊導致用戶無法參加一些需要登錄態(tài)的活動,造成不好的用戶體驗的問題。
2、本發(fā)明通過以下技術(shù)方案來實現(xiàn)上述目的,海量并發(fā)注冊解決方法,所述海量并發(fā)注冊解決方法包括如下步驟:
3、s1、設(shè)定注冊高峰qps閾值,當訪問量達到峰值后流量進入降級通道接口;
4、s2、通過事務(wù)和捕獲異常確保多個表無臟數(shù)據(jù)插入;
5、s3、進入降級通道流程的用戶數(shù)據(jù),臨時存儲在redis中,并異步使用mq進行消費注冊成功,讓用戶能及時拿到登錄票據(jù)不影響注冊體驗。
6、優(yōu)選的,所述qps閾值設(shè)定在sentinel內(nèi)。
7、優(yōu)選的,所述redis緩存已注冊用戶,通過spring?cloud?gateway網(wǎng)關(guān)捕獲熔斷異常,全局生成用戶id,提前生產(chǎn)票據(jù)。
8、優(yōu)選的,所述mq存儲降級注冊用戶請求,異步消費mq消息批量新增用戶。
9、優(yōu)選的,所述數(shù)據(jù)庫中為需要唯一性的字段設(shè)置唯一索引,確保數(shù)據(jù)的唯一性,并在出現(xiàn)重復時快速返回錯誤。
10、優(yōu)選的,所述數(shù)據(jù)庫采用一鍵登錄,登錄注冊可以采用三方注冊、手機號注冊以及無票用戶注冊。
11、優(yōu)選的,所述高峰qps閾值通過設(shè)置的限流控制臺控制降級通道。
12、優(yōu)選的,所述數(shù)據(jù)庫可以根據(jù)業(yè)務(wù)需求和數(shù)據(jù)量,將數(shù)據(jù)庫拆分成多個庫或多個表,以分散查詢和寫入壓力,可以使用水平分庫分表的方式,根據(jù)用戶id、時間戳等字段進行分片。
13、優(yōu)選的,所述數(shù)據(jù)庫通過讀寫分離來分散數(shù)據(jù)庫的讀寫壓力,主庫負責寫操作,從庫負責讀操作,提高系統(tǒng)的整體性能。
14、優(yōu)選的,所述通過網(wǎng)關(guān)捕獲異常,使得接口進入對應的降級接口,系統(tǒng)異步批量執(zhí)行注冊流程,確保用戶注冊成功并返回票據(jù)。
15、本發(fā)明的有益效果是:本發(fā)明中該種海量并發(fā)注冊解決方法為了確保在突增流量情況下保證用戶正常注冊和訪問app,用來確保新增用戶注冊不受流量突增的影響,海量并發(fā)注冊解決方法在于流量降級不阻斷訪問請求,而是通過網(wǎng)關(guān)捕獲異常,使得接口進入對應的降級接口,系統(tǒng)異步批量執(zhí)行注冊流程,確保用戶注冊成功并返回票據(jù),整個過程用戶完全無感知,具有廣闊的市場前景,適合推廣使用。
1.海量并發(fā)注冊解決方法,其特征在于:所述海量并發(fā)注冊解決方法包括如下步驟:
2.根據(jù)權(quán)利要求1所述的海量并發(fā)注冊解決方法,其特征在于:所述qps閾值設(shè)定在sentinel內(nèi)。
3.根據(jù)權(quán)利要求1所述的海量并發(fā)注冊解決方法,其特征在于:所述redis緩存已注冊用戶,通過spring?cloud?gateway網(wǎng)關(guān)捕獲熔斷異常,全局生成用戶id,提前生產(chǎn)票據(jù)。
4.根據(jù)權(quán)利要求1所述的海量并發(fā)注冊解決方法,其特征在于:所述mq存儲降級注冊用戶請求,異步消費mq消息批量新增用戶。
5.根據(jù)權(quán)利要求1所述的海量并發(fā)注冊解決方法,其特征在于:所述數(shù)據(jù)庫中為需要唯一性的字段設(shè)置唯一索引,確保數(shù)據(jù)的唯一性,并在出現(xiàn)重復時快速返回錯誤。
6.根據(jù)權(quán)利要求1所述的海量并發(fā)注冊解決方法,其特征在于:所述數(shù)據(jù)庫采用一鍵登錄,登錄注冊可以采用三方注冊、手機號注冊以及無票用戶注冊。
7.根據(jù)權(quán)利要求1所述的海量并發(fā)注冊解決方法,其特征在于:所述高峰qps閾值通過設(shè)置的限流控制臺控制降級通道。
8.根據(jù)權(quán)利要求1所述的海量并發(fā)注冊解決方法,其特征在于:所述數(shù)據(jù)庫可以根據(jù)業(yè)務(wù)需求和數(shù)據(jù)量,將數(shù)據(jù)庫拆分成多個庫或多個表,以分散查詢和寫入壓力,可以使用水平分庫分表的方式,根據(jù)用戶id、時間戳等字段進行分片。
9.根據(jù)權(quán)利要求1所述的海量并發(fā)注冊解決方法,其特征在于:所述數(shù)據(jù)庫通過讀寫分離來分散數(shù)據(jù)庫的讀寫壓力,主庫負責寫操作,從庫負責讀操作,提高系統(tǒng)的整體性能。
10.根據(jù)權(quán)利要求1所述的海量并發(fā)注冊解決方法,其特征在于:所述通過網(wǎng)關(guān)捕獲異常,使得接口進入對應的降級接口,系統(tǒng)異步批量執(zhí)行注冊流程,確保用戶注冊成功并返回票據(jù)。