最新回答 / 無名可用
四層負(fù)載均衡是基于IP+端口的負(fù)載均衡,處在傳輸層,七層負(fù)載均衡是基于URL等應(yīng)用層信息的負(fù)載均衡。這里說的幾層的意思都是基于OSI七層模型來說的,自上而下分別是應(yīng)用層、表示層、會話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層
2020-05-27
已采納回答 / 皮奇
本地redis是用來抗量,遠(yuǎn)程redis是為了防止庫存超賣少賣。本地掛了不代表遠(yuǎn)程掛,遠(yuǎn)程redis可以做成集群,掛了哨兵會自動再起一個,遠(yuǎn)程切換過程中會有短暫的時間不提供服務(wù),此時本地業(yè)務(wù)邏輯記得做異常兼容,如減庫存操作減完后再還原回去。
2020-02-08
講師回答 / 皮奇
同學(xué)你好,多機(jī)本地減庫存后,還需要統(tǒng)一扣庫存,也就是后面的redis做統(tǒng)一維護(hù),目的是防止前面的洪峰把redis沖垮。
2019-12-15
最贊回答 / itbsl
代碼層面做限流的話,可以用redis來配合做,假設(shè)你的一個接口的請求限制的一個IP1s內(nèi)只能有一個請求,則可以將接口名+IP作為鍵存一個bool值true,并且設(shè)置生命周期為1s,每次處理請求時先從redis里根據(jù)“接口名+IP”拿值,如果該值為true,說明一秒內(nèi)已經(jīng)有過一次請求,這種就可以直接拒絕不繼續(xù)往下處理,相反如果拿不到值了,說明之前沒有請求過或者請求的時間已經(jīng)是1s之前了,這種就允許通過,繼續(xù)處理下面的業(yè)務(wù)。
2019-11-29
講師回答 / 皮奇
這個其實(shí)是個高空用的問題,屬于運(yùn)維層面要解決的事情,一般redis不是直連,而是通過vip連接到proxy,proxy再根究切片配置轉(zhuǎn)發(fā)到redis實(shí)例,每個redis實(shí)例是一主多從,讀寫都在主,主掛了之后會自動通過raft算法選舉出一個新的主,用于確保服務(wù)的高可用。市面上有比較成熟的解決方案,如codis,可以了解下。
2019-10-26
已采納回答 / 皮奇
同學(xué)你好,lua語法相對簡單些,可以網(wǎng)上找點(diǎn)教程看看就行,書籍的話 《Lua程序設(shè)計(jì)》,如果想深入研究還可以找找 源碼分析的書籍看看?
2019-10-08
講師回答 / 皮奇
同學(xué)你好,你的思路不錯,可以繼續(xù)去想下直接incrby改會有什么問題,老師提供的思路只是其中一個方案,真正場景實(shí)現(xiàn)肯定會有非常多的方案,需要大家自己思考。redis->eval本身就是執(zhí)行l(wèi)ua腳本,redis->incrby理論上也可以防止邊界條件的發(fā)生,不會造成超賣,因?yàn)閕ncrby就實(shí)現(xiàn)了查詢+修改的原子操作,但是有一點(diǎn)點(diǎn)小缺點(diǎn)就是,不能做到只要一超賣了就直接終止+1。
2019-10-01
講師回答 / 皮奇
同學(xué)你好,具體哪聽不懂可以反饋給我,我后續(xù)慢慢優(yōu)化。lua一門腳本語言,是一門短小精悍的語言,代碼量非常少,可以嵌入到任何一門C開發(fā)的工具中,因此在nginx、redis中都有應(yīng)用,可以快速的擴(kuò)展nginx與redis這兩個工具的功能。
2019-09-04