1.下載AMQP插件
github上面有源碼,可以通過ant+ivy在本地進行打包(下載IDEA實踐成功)
https://github.com/jlavallee/JMeter-Rabbit-AMQP(github 上面支持中文有問題)
已經解決好亂碼的插件:插件下載
2.將下載的插件放到Jmeter--lib/ext目錄,然后啟動程序,可以看到"AMQP Publisher" 和 "AMQP Consumer" 2個選項
3.AMQP Publisher/Consumer 請求 介紹
Exchange(交換機):如果此處不填寫,使用默認名稱--(AMQP default)
Exchange Type:分別是direct(單播),fanout(廣播),topic(組播),headers,每種類型路由的策略不同,公司用direct 和 fanout 這2種路由居多
direct:如果一個隊列綁定到該交換機上,並且當前要求路由鍵為 X ,只有路由鍵是 X 的消息才會被這個隊列轉發。默認交換機便是該類型。
fanout:一個發送到交換機上的消息都會被轉發到與該交換機綁定的所有隊列上。 Fanout 交換機發消息是最快的。
topic:將路由鍵和某模式進行匹配,可以理解成模糊處理(不是特別明白)
Durable(持久化):具有這個標志的隊列和交換機會在重啟之后重新建立,它不表示說在隊列當中的消息會在重啟后恢復
Redeclare(重定義):此功能不是特別清楚
Message TTL(Time-To-Live Extensions):消息過期時間,時間為毫秒
Exclusive(排他性隊列):創建一個只有自己可見的隊列,即不允許其它用戶訪問,在沒有消費者來消費的時候,他就會自動的刪除
Expire(超期時間):該值必須為正數(與消息 TTL 不同,該值不可以為 0),所以如果該參數設置為 1000 ,則表示該 queue 如果在 1 秒鍾之內未被使用則會被刪除。
Auto delete:當沒有隊列或者其他exchange綁定到此exchange的時候,該exchange被銷毀
Prefect Count:消費者自身處理能力有限,從rabbitmq獲取一定數量的消息后,希望rabbitmq不再將隊列中的消息推送過來,當對消息處理完后(即對消息進行了ack,並且有能力處理更多的消息)再接收來自隊列的消息。在這種場景下,我們可以通過設置basic.qos信令中的prefetch_count來達到這種效果(一般不用設置)
通過Jmeter實現請求:
參考用例:https://github.com/jlavallee/JMeter-Rabbit-AMQP/blob/master/examples/RPC_Load_Test.jmx
備注:如果Reply-to Queue為空,則"AMQP Consumer--Queue"為空,不能得到返回數據
參考文獻:
http://www.tuicool.com/articles/6BRzMji
http://www.bbsmax.com/A/lamd0MWzge/
--------------------- 本文來自 小李廣 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/luozhuwang/article/details/62044872?utm_source=copy