12 AMQP協議 生產者流轉過程 消費者流轉過程

2021-10-07 04:46:20 字數 2442 閱讀 1108

rabbitmq中的交換機、交換機型別、佇列、繫結、路由鍵等都遵循amqp協議中相應的概念。

amqp是應用層的協議,包括三層:

生產者**:

// 建立連線

connection connection = factory.

newconnection()

;// 建立通道

channel channel = connection.

createchannel()

;string message =

"hello world!"

;// 傳送訊息

channel.

basicpublish

("exchange"

,"routingkey"

, messageproperties.persistent_text_plain,

message.

getbytes()

);// 關閉資源

channel.

close()

;connection.

close()

;

說明:

建立連線,涉及到的命令包括:connection.start/connection.start-okconnection.tune/connection.tune-okconnection.open/connection.open-ok

建立通道,涉及到的命令包括:channel.open/channel.open-ok

傳送訊息,涉及到的命令包括:basic.publish

關閉資源,涉及到的命令包括:channel.close/channel.close-okconnection.close/connection.close-ok

消費者**:

// 建立連線

connection connection = factory.

newconnection()

;// 建立通道

channel channel = connection.

createchannel()

;// 消費者訂閱訊息

consumer consumer =

newdefaultconsumer

(channel)

channel.

basicqos(64

);channel.

basicconsume

("queue"

, consumer)

;// 關閉資源

channel.

close()

;connection.

close()

;

說明:

建立連線,涉及到的命令包括:connection.start/connection.start-okconnection.tune/connection.tune-okconnection.open/connection.open-ok

建立通道,涉及到的命令包括:channel.open/channel.open-ok

使用channel.basicqos(int prefetchcount)設定消費客戶端最大能保持的未確認訊息數,涉及到的命令包括:basic.qos/basic.qos-ok

訂閱訊息,涉及到的命令包括:basic.consume/basic.consume-okbasic.deliver/basic.ack

關閉資源,涉及到的命令包括:channel.close/channel.close-okconnection.close/connection.close-ok

生產者消費者 生產者與消費者模式

一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...

多生產者 多做「生產者」,少做「消費者」

生產者 vs 消費者 哪個更好?消費者 定義非常廣泛,購買一件物品 進行一次消費的人都是消費者 更深一層的含義就是 消費 了你的金錢 時間 精力,比如刷抖音,花費了你的時間和精力,單方面地接受資訊 向內汲取 向外消耗時間或金錢,那你就是 消費者 生產者 生產 製造 創作了某個物品 作品,別人消費你的...

生產者消費者

using system using system.collections.generic using system.threading namespace gmservice foreach thread thread in producers q.exit console.read public...