rabbitmq 工作模式

2022-01-14 05:49:18 字數 2413 閱讀 2930

c1 c2輪流接收訊息

啟動兩個接受者

channel.queuedeclare(queue:"

que",durable:false,exclusive:false,autodelete:false,arguments:null);

交換機設定為空字串

p發給乙個交換機,這個交換機繫結兩個佇列,c1 c2各監聽乙個佇列。 

發布者

static

void main(string

args)

;connectionfactory.virtualhost = "/"

;

//using (iconnection con =connectionfactory.createconnection())}}

}

消費者建立兩個消費者

static

void main(string

args)

;using (iconnection con =connectionfactory.createconnection())

;//消費者開啟監聽

channel.basicconsume(queue: "

que1

", autoack: true

, consumer: consumer);

channel.basicconsume(queue:

"que2

", autoack: true

, consumer: consumer);

console.readkey();}}

}

根據路由傳送給註冊了指定路由的佇列

生產者 

using (imodel channel =con.createmodel())

}

消費者,為了區別,開啟了兩個監聽

using (imodel channel =con.createmodel())

;consumer2.received += (model, ea) =>;

//消費者開啟監聽

匹配模式和路由模式的區別在於,路由模式用相等判斷,匹配模式根據萬用字元判斷。 

* 代表任意乙個單詞

例如生產者路由設定成  *.ok.*  ,表示這個路由有三個單詞組成,中間乙個單詞必須是ok, hi.ok.mm

# 代表任意多個單詞

例如生產者路由設定成  abc.# ,表示d可以是由abc開頭的任意多個單詞,abc.uu.mm.w

生產者**

using (imodel channel =con.createmodel())

}

消費者**

using (imodel channel =con.createmodel())

;consumer2.received += (model, ea) =>;

channel.basicconsume(queue:

"que1

", autoack: true

, consumer: consumer1);

channel.basicconsume(queue:

"que2

", autoack: true

, consumer: consumer2);

console.readkey();

}

五、遠端呼叫模式

RabbitMQ工作模式

rabbitmq工作模式有六種 工作佇列模式,發布訂閱模式,路由模式,萬用字元模式,header模式和rpc模式。1.工作佇列模式 2.發布訂閱模式 交換機型別為funout。3.路由模式 交換機型別為direct。路由模式和發布訂閱模式區別 1 發布訂閱模式不需要繫結routingkey,訊息傳送...

RabbitMQ 工作模式

第一種 簡單模式 一 生產者 public static void main string args throws ioexception,timeoutexception二 消費者 public static void main string args throws ioexception,tim...

RabbitMQ 工作模式例項

rabbitmq初始化start 除了 模式外 其他的模式都是由 佇列 交換機 key 不同組合實現的 type rabbitmq struct 建立rabbitmq 例項 func newrabbitmq queuename,exchange,key string rabbitmq,error v...