RabbitMQ功能測試+性能測試簡單方法


一、如何測試RabbitMQ的功能

1、聯系開發找到隊列的名稱;登錄MQ后台管理地址;點擊Queues頁,輸入隊列名搜索出目標隊列(支持模糊查詢)

 

 

2、准備測試數據

(1)已知json格式時,根據不同的場景,提前准備各種格式的json;

(2)未知json格式時,點擊隊列名,在Get Messages輸入數量,點擊Get Message(s)按鈕,下方顯示數據。復制出格式后,根據不同的場景,提前准備各種格式的json;

 

圖1

 

 

圖2

3、啟動tomcat,如無異常,消費者線程已自動啟動,重點關注自啟動消費者

 

 

4、產生消息

1)運行QueueTest中的producer產生消息(從代碼層測試時)

(2)RabbitMQ上面直接publish

 

 

3)產生MQ消息的地方操作產生

5、驗證程序是否正確消費此消息

 

 

異常場景:

1、消費者啟動后,未顯示在隊列的Consumers

2、消費者啟動后,消費入庫時報錯

3、消費者啟動后,輸入正確的json,重復入庫

4、消費者啟動后,消費但未入庫

5、消費者啟動后,消費者剛開始顯示,但后來消失(消費者假死)

6、消費者啟動后,輸入錯誤的json,消費失敗

7、消費者啟動后,消費者堵塞(隊列阻塞,無法繼續添加數據,可能導致服務掛掉

二、如何測試 rabbitmq 的性能

測試持久化和非持久化狀態下上述場景的收/發性能不同消息大小狀態的收/發性能。

輪持久化的重要性:持久化的服務器收到消息后就會立刻將消息寫入到硬盤,就可以防止突然服務器掛掉,而引起的數據丟失了。但是服務器如果剛收到消息,還沒來得及寫入到硬盤,就掛掉了,這樣還是無法避免消息的丟失。

Rabbitmq原生是非持久化狀態,需要重新封裝才能為持久化狀態。常用的exchange類型有三個direct發布與訂閱fanout(廣播)、topic(主題)

 

測試方法(百度知道搜索的,未親自實踐):

1、聲明7個具有不同屬性的queue,分別和名為test_exchage的exchange進行綁定(因為exchange為fanout類型,所以測試代碼中的routing_key其實是不起作用的);

2、向exchange發送具有persistent屬性的消息(delivery_mode=2);

3、創建7個消費者分別從上述7個queue中獲取消息;

4、測試結果如下

 

 

三、學習資料

RabbitMQ的一些概念

RabbitMq中的交換機

RabbitMQ系列二(構建消息隊列)

RabbitMQ之PublisherConfirm實戰總結

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM