RabbitMQ個人總結一

2022-04-29 07:18:11 字數 927 閱讀 2353

1、工作佇列之公平分發

1.1、使用公平分發必須關閉自動應答,ack改成手動

生產者:消費者1:消費者2:

消費者2處理的訊息比消費者1多(能者多勞)

2、訊息應答和訊息持久化

autoack:boolean型別(true、false)

true:rabbit將訊息分發給消費者,就會從記憶體中刪除

如果殺死正在執行的消費者,就會丟失正在處理的資訊

false:如果有乙個消費者掛掉,就會交給另乙個消費者進行處理,rabbitmq支援訊息應答

消費者傳送乙個訊息應答告訴rabbitmq這個訊息處理完成,可以刪除了。之後rabbitmq就會刪除記憶體的訊息

訊息應答預設是false(開啟狀態的)

boolean autoack=true;

channel.basicconsume(queue_name, autoack, consumer);

訊息持久化:

boolean durable=false;

channel.queuedeclare(queue_name, durable, false, false, null);

durable=false不能改成true;

改成true**不出錯,但是執行會有錯誤

rabbitmq不允許重新定義乙個存在的佇列

3、訂閱模式

解讀:1、乙個生產者,多個消費者

2、每乙個消費者都有自己的佇列

3、生產者沒有直接把訊息傳送到佇列而是到了交換機

4、每個佇列都要繫結到交換機上

5、生產者傳送的訊息 經過交換機 到達佇列 就能實現乙個訊息被多個消費者消費

RabbitMQ 知識總結

amqp協議是乙個提供統一訊息服務的應用層標準協議,並不會受到客戶端 中介軟體不同產品 不同開發語言等條件的影響。rabbitmq則是基於該協議實現的。舉個例子來說,如下圖,生產者將訊息傳送到交換機上,交換機接收到資訊以後按照相應的路由鍵路由到佇列中,這裡的交換機只是起到了路由的功能,實際上訊息儲存...

Rabbit MQ學習總結

1,獲取conection 2,獲取channel 3,定義exchange,queue 4,使用乙個routingkey將queue binding到乙個exchange上 5,通過指定乙個exchange和乙個routingkey來將訊息傳送到對應的queue上,6,接收方在接收時也是獲取con...

RabbitMQ 知識總結

amqp協議是乙個提供統一訊息服務的應用層標準協議,並不會受到客戶端 中介軟體不同產品 不同開發語言等條件的影響。rabbitmq則是基於該協議實現的。舉個例子來說,如下圖,生產者將訊息傳送到交換機上,交換機接收到資訊以後按照相應的路由鍵路由到佇列中,這裡的交換機只是起到了路由的功能,實際上訊息儲存...