??學習任何東西都要有正確的反饋,快速入門的最好方法就是先照著別人的文檔敲出一個可以運行的小demo.
下面我們就從安裝到入門demo一步一步的走:
1.安裝Erlang
rabbitMQ是一個在AMQP協(xié)議標準基礎上完整的垄琐,可服用的企業(yè)消息系統(tǒng)。它遵循Mozilla Public License開源協(xié)議,采用 Erlang 實現(xiàn)的工業(yè)級的消息隊列(MQ)服務器嘱么,Rabbit MQ 是建立在Erlang OTP平臺上。
所以在安裝rabbitMQ之前,需要先安裝Erlang ,可以去Erlang官網(wǎng)下載。
全部點擊“下一步”就行带族。
2.安裝RabbitMQ
下載運行rabbitmq-server,可以去官網(wǎng)下載。
也是全部下一步就可以了
3.配置
激活 RabbitMQ's Management Plugin
使用RabbitMQ 管理插件蟀给,可以更好的可視化方式查看Rabbit MQ 服務器實例的狀態(tài)蝙砌。
打開命令窗口,輸入命令:
注:對照自己的安裝路徑,修改下面的命令
"C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5\sbin\rabbitmq-plugins.bat" enable rabbitmq_management
安裝好插件后阳堕,重啟一下服務,使用命令:
net stop RabbitMQ && net start RabbitMQ
重啟服務之后訪問 http://localhost:15672 驗證安裝是否成功.
出現(xiàn)以下界面則說明安裝成功,默認情況下可以使用以下賬號密碼登錄:
username:guest
password:guest
//默認端口
port=5176
這個時候我們就可以開始愉快的coding了
5.入門案例
新建一個普通maven工程,導入依賴
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.3.0</version>
</dependency>
如果你不想創(chuàng)建maven工程,也可以手動下載jar包導入
下面我們先創(chuàng)建一個消費者
/**
* Description:消息消費者
*/
public class Consumer {
private final static String QUEUE_NAME = "rabbitMQ.test";
public static void main(String[] args) throws IOException, TimeoutException {
// 創(chuàng)建連接工廠
ConnectionFactory factory = new ConnectionFactory();
//設置RabbitMQ地址
factory.setHost("localhost");
//factory.setUsername("guest");默認值可省略
//factory.setPassword("guest");默認值可省略
// factory.setPort(5176);默認值可省略
//創(chuàng)建一個新的連接
Connection connection = factory.newConnection();
//創(chuàng)建一個通道
Channel channel = connection.createChannel();
//聲明要關注的隊列
channel.queueDeclare(QUEUE_NAME, false, false, true, null);
System.out.println("Customer Waiting Received messages");
//DefaultConsumer類實現(xiàn)了Consumer接口择克,通過傳入一個頻道恬总,
// 告訴服務器我們需要那個頻道的消息,如果頻道中有消息肚邢,就會執(zhí)行回調(diào)函數(shù)handleDelivery
com.rabbitmq.client.Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope,
AMQP.BasicProperties properties, byte[] body)
throws IOException {
String message = new String(body, "UTF-8");
System.out.println("Customer Received '" + message + "'");
}
};
//自動回復隊列應答 -- RabbitMQ中的消息確認機制
channel.basicConsume(QUEUE_NAME, true, consumer);
}
}
運行一下,結果:
Customer Waiting Received messages
下面我們再編寫一個producer
/**
* Description:消息生產(chǎn)者
*/
public class Producer {
public final static String QUEUE_NAME = "rabbitMQ.test";
public static void main(String[] args) throws IOException, TimeoutException {
//創(chuàng)建連接工廠
ConnectionFactory factory = new ConnectionFactory();
//設置RabbitMQ相關信息
factory.setHost("localhost");
//factory.setUsername("guest");默認值可省略
//factory.setPassword("guest");默認值可省略
// factory.setPort(5176);默認值可省略
//創(chuàng)建一個新的連接
Connection connection = factory.newConnection();
//創(chuàng)建一個通道
Channel channel = connection.createChannel();
// 聲明一個隊列 channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String message = "Hello RabbitMQ";
//發(fā)送消息到隊列中
channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));
System.out.println("Producer Send +'" + message + "'");
//關閉通道和連接
channel.close();
connection.close();
}
}
運行結果:
Producer Send +'Hello RabbitMQ'
再查看消息消費者的控制臺信息:
Customer Waiting Received messages
Customer Received 'Hello RabbitMQ'
至此,從安裝到一個小demo就完成了,我想此刻你的心里應該也已經(jīng)有了一點小小的成就感,rabbitMQ我們也算是入門了,哈哈.下面你可以查看其它更高階的攻略,自由發(fā)揮了.