rabbitmq fanout廣播模式

2022-09-13 22:54:25 字數 1594 閱讀 6099

publisher端(.py):

import

pika

import

sysconnection =pika.blockingconnection(pika.connectionparameters(

host = "

localhost"))

channel =connection.channel()

channel.exchange_declare(exchange = "

logs

",exchange_type = "

fanout")

message = "

info:hello world!

"channel.basic_publish(exchange = "

logs",

routing_key=""

, body =message)

#不用對佇列進行宣告,所以routing_key為空

print("

[x] sent %r

" %message)

connection.close()

subscriber端(.py):

import

pika

connection =pika.blockingconnection(pika.connectionparameters(

host = "

localhost"))

channel =connection.channel()

channel.exchange_declare(exchange = "

logs",

exchange_type = "

fanout")

#對交換器進行宣告fanout模式,名稱為「logs」

result = channel.queue_declare(queue = "",exclusive =true)

queue_name =result.method.queue

#隨機的佇列名

channel.queue_bind(exchange ="

logs

",queue =queue_name)

print("

[*] waiting foor logs. to exit press ctrl+c")

defcallback(ch,method,properties,body):

print("

[x] %r

" %body)

channel.basic_consume(on_message_callback =callback,

queue =queue_name,

auto_ack =true)

channel.start_consuming()

#消費資訊

subscriber端需實時接收publisher端所傳送的資料,若先開啟publisher端傳送資訊,然後開啟subscriber端會發現先前所發訊息丟失,就像女神對你說這週日她有空,你當時耳鳴,而當你恢復聽覺想再聽她說什麼卻已經錯過那個女神了。

RabbitMQ fanout廣播模式

fanout 所有bind到該交換機的佇列都可以接收訊息。訊息的接受者需要建立乙個佇列,繫結到該fanout交換機上,監聽來自傳送端的訊息廣播。fanout模式和topic模式基本是一樣的,唯一的乙個區別在於topic可以根據不同的主題路由到不同的佇列,但是fanout模式是沒有路由這個過程的,所有...

RabbitMQ fanout廣播交換器模式

當訂單服務向交換器傳送請求的時候,需要簡訊服務和push服務進行工作,如果使用傳統的服務呼叫的話,是強耦合不利於擴充套件開發,此時可以使用rabbitmq提供的交換器中的fanout 廣播模式 進行解決,中介軟體通過廣播模式同時將請求放入訂單服務的佇列中。進行業務的處理 fanout不會進行路由鍵匹...

SpringBoot websocket廣播式應用

1 建立乙個簡單的springboot 專案,推薦使用idea,這裡我只選擇了websocket,thymeleaf。2 配置websocket,需要使用 enablewebsocketmessagebroker 註解開啟stomp協議來傳輸基於 message broker 的訊息,並通過實現we...