哪個(gè)平臺(tái)是提供API接口的,比較靠譜的平臺(tái)?
紀(jì)昀API平臺(tái)可以為您提供短信、真人認(rèn)證、空號(hào)檢測(cè)等多種API接口。
接口并發(fā)量高的解決方案?
這個(gè)問(wèn)題的解決方案需要根據(jù)具體的業(yè)務(wù)場(chǎng)景來(lái)分析。
示例:普通道釘系統(tǒng)
1.電流限制:通過(guò)設(shè)置服務(wù)器的數(shù)量和等待時(shí)間s連接,以tomcat為例,通過(guò)設(shè)置maxthread的值,當(dāng)連接數(shù)超過(guò)時(shí),會(huì)放入等待隊(duì)列,同時(shí)可以設(shè)置acceptcount的值。如果連接數(shù)超過(guò),會(huì)提示連接被拒絕。
2.引入redis,把秒殺商品的數(shù)據(jù)放入redis,用戶點(diǎn)擊搶購(gòu),查看商品ID。如果商品存在,則生成一個(gè)訂單并存儲(chǔ)在緩存中,同時(shí)庫(kù)存為-1。還原后判斷商品庫(kù)存是否大于0,如果大于0,更新緩存,否則刪除商品緩存,更新庫(kù)表(以上步驟只是單線程操作,需要加鎖,或者我們可以考慮使用redis的list對(duì)象實(shí)現(xiàn)單線程操作。
3.利用CDN抑制靜態(tài)頁(yè)面流量
為了防止用戶產(chǎn)生的流量秒殺前的s連續(xù)刷新,秒殺商品詳情頁(yè)的內(nèi)容可以認(rèn)為是靜態(tài)處理的,除了提交訂單,其他所有數(shù)據(jù)都可以緩存在CDN上。
此外,可以引入消息隊(duì)列來(lái)分離不能立即響應(yīng)的服務(wù)。
sql怎么剔重?
在使用SQL提取數(shù)字時(shí),我們經(jīng)常會(huì)遇到表中的重復(fù)值。例如,如果我們想要獲得uv(獨(dú)立訪問(wèn)者),我們需要做復(fù)制。
Mysql中通常使用Distinct或groupby子句,但row_numberwindow函數(shù)也可用于刪除支持窗口函數(shù)的sql(如HiveSQL、Oracl:任務(wù)id
Ord:訂單id
Start_tim:開始時(shí)間
注意:一個(gè)任務(wù)對(duì)應(yīng)多個(gè)訂單。
我們需要找出任務(wù)的總數(shù),因?yàn)閠ask_id不是惟一的,所以我們需要復(fù)制它:
明顯的
-列出task_id的所有唯一值(刪除重復(fù)項(xiàng)后的記錄)
-選擇不同的任務(wù)標(biāo)識(shí)
-來(lái)自任務(wù)
-任務(wù)總數(shù)
選擇計(jì)數(shù)(不同任務(wù)標(biāo)識(shí))任務(wù)編號(hào)
來(lái)自任務(wù)
Distinct通常效率很低。不適合顯示去重后的具體數(shù)值,一般用于結(jié)合count計(jì)算文章數(shù)。
Distinct正在使用中,放置在select之后。邊,后面所有字段的值都是統(tǒng)一復(fù)制的。例如,distinct之后有兩個(gè)字段,因此兩個(gè)記錄1,1和1,2不是重復(fù)值。
分組依據(jù)
-列出task_id的所有唯一值(刪除重復(fù)后的記錄,null也是一個(gè)值)。
-選擇任務(wù)標(biāo)識(shí)
-來(lái)自任務(wù)
-按任務(wù)標(biāo)識(shí)分組
-任務(wù)總數(shù)
選擇計(jì)數(shù)(任務(wù)標(biāo)識(shí))任務(wù)編號(hào)
從(選擇任務(wù)標(biāo)識(shí)
來(lái)自任務(wù)
按任務(wù)標(biāo)識(shí)分組)
行數(shù)
Row_number是一個(gè)窗口函數(shù),語(yǔ)法如下:
row_number()over(partitionbyltfieldnamegtorderbyltfieldnamegtforsortinginagroup)
可以省略按部分劃分。
-在支持窗口函數(shù)的sql中使用
selectcount(rn1thentask_idelsenullend時(shí)的情況)task_num
從(選擇任務(wù)標(biāo)識(shí)
,row_number()over(按task_id分區(qū),按start_time排序)rn
來(lái)自任務(wù))tmp
此外,借助于表測(cè)試,解釋了distinct和groupby在去加重中的使用:
-下面的分號(hào)用于分隔各行。
選擇不同的用戶標(biāo)識(shí)
來(lái)自測(cè)試-返回12
選擇不同的用戶標(biāo)識(shí)、用戶類型
從測(cè)試返回1,11,22,1。
選擇用戶標(biāo)識(shí)
來(lái)自測(cè)試
Groupbyuser_id-返回12。
選擇用戶標(biāo)識(shí),用戶類型
來(lái)自測(cè)試
Groupbyuser_id,user_type-返回1,11,22,1。
選擇用戶標(biāo)識(shí),用戶類型
來(lái)自測(cè)試
按用戶標(biāo)識(shí)分組
-Hive,Oracle等。會(huì)報(bào)錯(cuò),mysql可以這樣寫。
-返回1,1或1,2,2,1(總共兩行)。僅適用于分組依據(jù)的后面要復(fù)制字段,也就是說(shuō)最后返回的記錄數(shù)等于前面sql中的記錄數(shù),也就是2。
-不是放在groupby之后而是放在select中的字段只會(huì)返回一條記錄(好像一般是第一條,應(yīng)該是不規(guī)則的)。