rabbitMq實現已讀訊息和未讀訊息的查詢

2022-07-03 08:40:39 字數 864 閱讀 3618

//

進行鏈結常見

//xfrabbittemplate 自定義的鏈結建立類

channel channel =xfrabbittemplate.getchannel();

//消費者定義

channel.queuedeclare(queue.text_message, true, false, false, null

);

//從佇列中檢索訊息

getresponse result = channel.basicget(queue.text_message, true

);

//獲取當前佇列中訊息的訊息體

byte body =result.getbody();

//獲取當前訊息資料個數

result.getmessagecount();

//獲取當前佇列要交給消費者的訊息

channel.messagecount(queue.text_message);

//進行佇列訊息和傳遞訊息進行

if(body.equals(message))

/*** 獲取已經被ack之後的訊息(已讀):

* autoack 預設為 false 沒有給消費者檢視,消費者查詢則為true

* 當前查詢沒有被閱讀的訊息

*/getresponse outchan = channel.basicget(queue.text_message, false

);

if(outchan != null

) { infos.add(outchan.getbody().tostring());

rabbitmq訊息重新入隊和訊息確認

為了確認訊息不會丟失,rabbitmq支援message acknowledgments。乙個ack的響應會從消費端返回,告訴rabbitmq乙個特定的訊息已被接收。當rabbitmq空閒時會處理它,將它刪除。如果乙個消費者掛掉 channel被關閉 connection被關閉或者tcp 連線被關閉...

訊息佇列 Kafka和rabbitMQ

0.建立topic bin kafka topics.sh create zookeeper localhost 2181 replication factor1 partitions1 topic test 1.檢視kafka topic列表 bin kafka topic.sh zoopkeep...

訊息佇列 RabbitMQ和Kafka

2種模式 點對點 consumer主動對queue監控,檢查是否收到訊息 優點 解耦 通過中介軟體通訊 冗餘 可做快取 擴充套件性順序保證 非同步通訊 consumer即使down掉,訊息還是儲存在queue,等consumer恢復會自動處理訊息 關於broker裡的exchange不可以直接將訊息...