當訂單服務向交換器傳送請求的時候,需要簡訊服務和push服務進行工作,如果使用傳統的服務呼叫的話,是強耦合不利於擴充套件開發,此時可以使用rabbitmq提供的交換器中的fanout(廣播模式)進行解決,中介軟體通過廣播模式同時將請求放入訂單服務的佇列中。進行業務的處理
fanout不會進行路由鍵匹配的進行訊息的傳送,而是以廣播的方式將訊息傳送到所有的佇列中,所以不管是消費端還是生產端都不需要路由鍵的存在
1.全域性配置檔案
1.設定交換器的名字
2.設定佇列的名稱,fanout不需要進行設定路由鍵
spring.rabbitmq.host=192.168.177.140
spring.rabbitmq.port=5672
spring.rabbitmq.username=oldlu
spring.rabbitmq.password=123456
#配置交換器的名字
spring.rabbitmq.exchange.name=order-topic
#設定簡訊佇列名稱
spring.rabbitmq.queue.sms=order-sms
#設定push佇列名稱
spring.rabbitmq.queue.push=order-push
sms佇列
fanout是不需要路由的
smsqueue
@component
@rabbitlistener(
bindings = @queuebinding(
value = @queue(value = "$"),
exchange = @exchange(value = "$",type = exchangetypes.fanout)
))public class smsqueue
}
@component
@rabbitlistener(
bindings = @queuebinding(
value = @queue(value = "$"),
exchange = @exchange(value = "$",type = exchangetypes.fanout)
))public class pushqueue
}
1.全域性配置檔案
只需要新增交換器的名字即可
spring.rabbitmq.host=192.168.177.140
spring.rabbitmq.port=5672
spring.rabbitmq.username=oldlu
spring.rabbitmq.password=123456
#配置交換器的名字
spring.rabbitmq.exchange.name=order-topic
使用fanout進行設定的時候路由key值給空字串即可
@component
public class sender
") private string exchange;
public void send(string msg)
}
結果
RabbitMQ fanout廣播模式
fanout 所有bind到該交換機的佇列都可以接收訊息。訊息的接受者需要建立乙個佇列,繫結到該fanout交換機上,監聽來自傳送端的訊息廣播。fanout模式和topic模式基本是一樣的,唯一的乙個區別在於topic可以根據不同的主題路由到不同的佇列,但是fanout模式是沒有路由這個過程的,所有...
rabbitmq fanout廣播模式
publisher端 py import pika import sysconnection pika.blockingconnection pika.connectionparameters host localhost channel connection.channel channel.exc...
SpringBoot websocket廣播式應用
1 建立乙個簡單的springboot 專案,推薦使用idea,這裡我只選擇了websocket,thymeleaf。2 配置websocket,需要使用 enablewebsocketmessagebroker 註解開啟stomp協議來傳輸基於 message broker 的訊息,並通過實現we...