說到隊列的話,大家一定不會陌生,但是扯到優(yōu)先級隊列的話,還是有一部分同學(xué)是不清楚的,可能是不知道怎么去實現(xiàn)吧,其實呢,,,這東西已
經(jīng)爛大街了。。。很簡單,用“堆”去實現(xiàn)的,在我們系統(tǒng)中有一個訂單催付的場景,我們客戶的客戶在tmall,taobao下的訂單,taobao會及時將訂單推送給
我們,如果在用戶設(shè)定的時間內(nèi)未付款那么就會給用戶推送一條短信提醒,很簡單的一個功能對吧,但是,tmall商家對我們來說,肯定是要分大客戶和小客
戶的對吧,比如像施華蔻,百雀林這樣大商家一年起碼能夠給我們貢獻(xiàn)幾百萬,所以理應(yīng)當(dāng)然,他們的訂單必須得到優(yōu)先處理,而曾今我們的后端系統(tǒng)是使
用redis來存放的定時輪詢,大家都知道redis只能用List做一個簡簡單單的消息隊列,并不能實現(xiàn)一個優(yōu)先級的場景,所以訂單量大了后采用rabbitmq進(jìn)行
改造和優(yōu)化,如果發(fā)現(xiàn)是大客戶的訂單給一個相對比較高的優(yōu)先級,否則就是默認(rèn)優(yōu)先級,好了,廢話不多說,我們來看看如何去設(shè)置。
一:優(yōu)先級隊列
既然是優(yōu)先級隊列,那么必然要在Queue上開一個口子貼上一個優(yōu)先級的標(biāo)簽,為了看怎么設(shè)置,我們用一下rabbitmq的監(jiān)控UI,看看這個里面是如何