RabbitMQ直接模式(Direct)
2.2 直接模式(Direct)
2.2.1 什麼是Direct模式
我們需要將訊息發給唯一一個節點時使用這種模式,這是最簡單的一種形式。
任何傳送到Direct Exchange的訊息都會被轉發到RouteKey中指定的Queue。
1.一般情況可以使用rabbitMQ自帶的Exchange:”"(該Exchange的名字為空字串,下文稱其為default Exchange)。
2.這種模式下不需要將Exchange進行任何繫結(binding)操作
3.訊息傳遞時需要一個“RouteKey”,可以簡單的理解為要傳送到的佇列名字。
4.如果vhost中不存在RouteKey中指定的佇列名,則該訊息會被拋棄。
2.2.2 建立佇列
做下面的例子前,我們先建立一個叫test1的佇列。
Durability:是否做持久化 Durable(持久) transient(臨時)
Auto delete : 是否自動刪除
2.2.3 程式碼實現-訊息生產者
(1)建立工程rabbitmq_demo,引入amqp起步依賴 ,pom.xml如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
(2)編寫配置檔案application.yml
spring:
rabbitmq:
host: 192.168.184.134
(3)編寫啟動類
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
(4)編寫測試類
@RunWith(SpringRunner.class)
@SpringBootTest(classes=Application.class)
public class MqTest {
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void testSend(){
rabbitTemplate.convertAndSend("test1","我要紅包");
}
}
執行測試方法
2.2.4 程式碼實現-訊息消費者
(1)編寫訊息消費者類
@Component
@RabbitListener(queues="test1" )
public class Customer1 {
@RabbitHandler
public void showMessage(String message){
System.out.println("itcast接收到訊息:"+message);
}
}
(2)執行啟動類,可以在控制檯看到剛才傳送的訊息
2.2.5 測試
開啟多個消費者工程,測試執行訊息生產者工程,會發現只有一個消費者工程可以接收
到訊息。
如何在IDEA中多次啟動同一個程式呢?
(1)選擇IDEA右上角的類名稱按鈕
(2)選擇Edit Configurations
(3)在彈出視窗中取消單例模式 ,點選OK
server:
port: 9202
執行後在控制檯可以看到多個視窗
相關推薦
RabbitMQ直接模式(Direct)
2.2 直接模式(Direct) 2.2.1 什麼是Direct模式 我們需要將訊息發給唯一一個節點時使用這種模式,這是最簡單的一種形式。 任何傳送到Direct Exchange的訊息都會被轉發到RouteKey中指定的Queue。 1.一般情況可以使用rabb
RabbitMQ學習第四記:路由模式(direct)
exceptio 指定 手動 ack key static ech 保存日誌 sta 1、什麽是路由模式(direct) 路由模式是在使用交換機的同時,生產者指定路由發送數據,消費者綁定路由接受數據。與發布/訂閱模式不同的是,發布/訂閱模式只要是綁定了交換機的隊列都會收
RabbitMQ訊息佇列(二) fanout 廣播模式
先粘程式碼 生產者 ConnectionFactory connectionFactory = new ConnectionFactory(); Connection connection = connectionFa
RabbitMQ使用教程(四):釋出/訂閱模式—Publish/Subscribe
一、釋出/訂閱模式說明 今天我們來學習一點新的東西,之前我們是將一個訊息傳送給了一個特定的消費者,今天的做法完全不同,不再發送給某一個消費者,而是將一個訊息傳送給多個消費者,這便是:釋出/訂閱模式。 我們將使用該模式來實現一個日誌系統:一個程式產生日誌,一個
linux(deepin15.4)下部署叢集RabbitMQ訊息佇列映象模式(三)
第三天 一、映象佇列策略 1、映象佇列可以防止主節點掛掉,整個佇列就癱瘓了。所以要想在主節點掛掉或故障也能正常應用,就要複製佇列內容到叢集裡的每個節點,須要建立映象佇列。 2、映象模式配置完成之後,會存在一個主節點和多個映象節點(或稱為熱備佇列,Slave
GOF23—單例模式(2)
應該 一個 img bsp 漏洞 資源 nbsp 創建 就會 本文介紹單例模式(不包含枚舉單例模式)漏洞問題以及如何防止漏洞 1.反射可以破解單例模式,例子如下: 此時,我們運行Client類,發現s1和s2是一個對象,但s3和s4是不同的對象。 那麽如何防
『ORACLE』 設置Edit模式(11g)
配置 修改 sqlplus spa size span -s ont def SQL>define_editor=‘vi‘ 執行一條SQL語句再修改編輯 SQL>ed 可以將define _editor=‘vi‘這句話寫在sqlplus 的啟動配置腳本中『ORA
設計模式之適配器模式(Adapter)
功能 系統 第三方 抽象 可能 對象 期待 技術分享 適配器 我想要是說適配器模式,提一下“電壓”、“耳機”、“充電器”和 "USB” 的例子應該是比較恰當的了。就說說自己的親身經歷,我原來的手機是NOKIA5730。後來也不知道有沒有國行,但是不推薦大家買這款手機,不適
設計模式之建造者模式(Builder)
人的 做出 字體 存在 分享 定義 固定 也不會 抽象方法 一個人活到70歲以上,都會經歷這樣的幾個階段:嬰兒,少年,青年,中年,老年。並且每個人在各個階段肯定是不一樣的呀,我覺得可以說世界上不存在兩個人在人生的這5個階段的生活完全一樣,但是活到70歲以上的人,都經歷了這幾
[轉]設計模式--單例模式(一)懶漢式和餓漢式
打印 是否 調用構造 餓漢 一段 tools 會有 輸出結果 java 單例模式是設計模式中比較簡單的一種。適合於一個類只有一個實例的情況,比如窗口管理器,打印緩沖池和文件系統, 它們都是原型的例子。典型的情況是,那些對象的類型被遍及一個軟件系統的不同對象訪問,因此需要一個
《跨界雜談》商業模式(五):金融
公眾 匯率 白狼 wcf qrcode 行業 mom 運動 bsp 2015-03-14 雷震子 雷震子 金融具有非常強的專業性,非常easy把筆者落到班門弄斧的境界。但也不想謹言慎行,大家將就看吧,別太把豆包當幹糧就中了。 金融歷史悠久,伴隨商業而生,
設計模式(二): 工廠模式
dem blank hibernate 執行 oid code 做出 void actor 工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。 在工廠模式中,我們在創建
單例模式(Singleton)
ech 單例模式 bsp 在線 創建 private 解決 餓漢式 dir 1.解決的問題:使得一個類只能夠創建一個對象。2.如何實現: ①私有化構造器,使得在類的外部不能調用該構造器 ②在類的內部創建一個實例 ③私有化該對象,通過公共的方法來調用(返回該
工廠模式(二)
log ofa clas pri com urn 兩層 實現 需求 工廠方法模式:簡單工廠模式的進一步抽象和推廣。工廠方法模式把簡單工廠中的具體的工廠類劃分為兩層:抽象工廠層+具體工廠層,類圖如下: 涉及到的角色: 抽象產品角色:所有產品的共同父類或共有接口,用以實現多態
JAVA設計模式之單例模式(轉)
單例對象 日誌 locking anti 常見 基本上 title 加載 懶漢式 本文繼續介紹23種設計模式系列之單例模式。 概念: java中單例模式是一種常見的設計模式,單例模式的寫法有好幾種,這裏主要介紹三種:懶漢式單例、餓漢式單例、登記式單例。 單例模式有以下特
PHP面向對象單例模式(懶漢式)
檢查 私有 構造函數 知識 單例 懶漢 變量 eof php面向對象 知識點: 一、三私一公: ①、私有靜態屬性,又來儲存生成的唯一對象 ②、私有構造函數 ③、私有克隆函數,防止克隆——clone ④、公共靜態方法,用來訪問靜態屬性儲存的對象,如果沒有對象,則生成此單例 二
代理模式(Proxy)
p s log 場景 private span 方法 陌生 機制 特殊 代理模式(Proxy) 代理模式:簡單明了。簡稱代理商,對代理這個詞想必大家都不陌生,現在微信上,幾乎全是各種代理商,哈哈哈。。。不錯。我們的代理模式,也是如此。用java語言來說。就是,替原對象進行一
跟我學設計模式視頻教程——管擦者模式(下),責任鏈模式(上)
tar eight color font content 設計模式 name -m ack 課程視頻 觀察者模式(下) 責任鏈模式(上) 課程筆記 課程筆記 課程代碼 課程代碼 新課程火熱報名中 課程介紹
java面向對象與設計模式(四)
工廠方法模式 java 選擇 缺點 一個 聯系 面向 抽象工廠 pan 第五式 抽象工廠模式 定義:提供一個創建一系列相關或相互依賴對象的接口,而無需指定他們具體的類。(創建的對象之間有約束) 抽象工廠模式的本質:選擇產品簇的實現 優點:分離接口和產品簇,使得切換產品簇變得
設計模式(一)觀察者模式
針對 ray 需求 als bool 模式 null rri 主動 觀察者模式 定義了對象之間的一對多的依賴,這樣一來,當一個對象狀態改變時,他的 多有依賴都會受到通知並自動更新。 本例為一個溫度基站,和三個終端。溫度基站為廣播類WeatherData,三個終端監聽者類分別