queue的中文 如何設(shè)計(jì)一個(gè)MQ消息隊(duì)列?
如何設(shè)計(jì)一個(gè)MQ消息隊(duì)列?1. 在上圖中定義發(fā)送和使用消息的過程2。首先定義消息協(xié)議,如ActiveMQ、stomp、XMPP等3。定義消息協(xié)議,定義消息隊(duì)列需要滿足的場(chǎng)景是否要保證消息的可靠性,必要
如何設(shè)計(jì)一個(gè)MQ消息隊(duì)列?
1. 在上圖中定義發(fā)送和使用消息的過程
2。首先定義消息協(xié)議,如ActiveMQ、stomp、XMPP等
3。定義消息協(xié)議,定義消息隊(duì)列需要滿足的場(chǎng)景
是否要保證消息的可靠性,必要時(shí)要保證存儲(chǔ)的高可用性
是否要支持同步和異步消息
是否要保證消息隊(duì)列例如rocketmq是高可靠性,卡夫卡是高吞吐量,但不高可靠性。
隊(duì)列,堆棧與數(shù)組,鏈表的關(guān)系與區(qū)分?
堆棧和隊(duì)列可以用數(shù)組實(shí)現(xiàn),也可以用鏈表實(shí)現(xiàn)!一般來說,堆棧也是隊(duì)列!它們都是一種順序表結(jié)構(gòu)!堆棧也叫FIFO隊(duì)列,也叫后進(jìn)先出隊(duì)列,隊(duì)列也叫FIFO隊(duì)列!這兩者統(tǒng)稱為單入單出隊(duì)列!堆棧屬于單端隊(duì)列!隊(duì)列是單進(jìn)單出雙端隊(duì)列!此外,還有一個(gè)雙進(jìn)雙出的雙端隊(duì)列!這三個(gè)隊(duì)列屬于線性表!可以用數(shù)組或鏈表來實(shí)現(xiàn)!除了常用的動(dòng)態(tài)列表外,還可以使用靜態(tài)列表!靜態(tài)列表是一個(gè)數(shù)組和游標(biāo)(一個(gè)整數(shù),用來代替指針)實(shí)現(xiàn)的!PS:stack(后進(jìn)先出或Filo)、queue(FIFO)、double-in和double-out queue(deque)是隊(duì)列的三種形式。堆棧是單端隊(duì)列,先入后出!隊(duì)列單進(jìn)單出雙端隊(duì)列FIFO,雙隊(duì)列deque是雙進(jìn)雙出雙端隊(duì)列!這就是堆棧和隊(duì)列之間的關(guān)系!都是線性列表(順序列表)線性列表(順序列表)可以通過數(shù)組、鏈表(動(dòng)態(tài)鏈表)和靜態(tài)鏈表來實(shí)現(xiàn)!這就是它們與數(shù)組的關(guān)系
什么是系統(tǒng)消息隊(duì)列?和應(yīng)用程序消息隊(duì)列的關(guān)系如何?
消息隊(duì)列等同于進(jìn)程隊(duì)列。系統(tǒng)消息隊(duì)列是指那些將進(jìn)入系統(tǒng)進(jìn)行處理的進(jìn)程,如windowsxp和applicationmessagequeue。它是指那些將進(jìn)入應(yīng)用軟件進(jìn)行處理的進(jìn)程,如QQ、MSN、ie等。