1、RabbitMQ簡介
RabbitMQ是實現了高級消息隊列協議(AMQP)的開源消息代理軟件。RabbitMQ服務器是用Erlang語言編寫的,Erlang是一種通用的面向併發的編程語言,可想RabbitMQ的併發能力。
RabbitMQ 整體上是一個生產者,消費者模型,主要負責接收,存儲和轉發消息。
2.windows下安裝
官網下載及安裝地址:https://www.rabbitmq.com/download.html
此次安裝版本是3.4.1
由於RabbitMQ服務器是用Erlang語言編寫,所以安裝rabbitmq前需要先安裝Erlang,
Erlang下載:http://www.erlang.org/download/otp_win64_17.3.exe。
百度雲盤:https://pan.baidu.com/s/1E1JVhPBoTZkx90Zf5pmiuw
安裝完Erlang,再安裝RabbitMQ,
可以啓動、停止、重新安裝等。
3.啓用管理工具
- 點擊
- 輸入命令:rabbitmq-plugins enable rabbitmq_management
- 在瀏覽器中輸入地址查看:http://127.0.0.1:15672/
- 使用默認賬號登錄:guest/ guest
4、Linux下安裝
4.1 安裝Erlang
cd /usr/local/src/
mkdir rabbitmq
cd rabbitmq
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
rpm --import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc
sudo yum install erlang
4.2、安裝RabbitMQ
安裝文件可從百度雲盤下載:https://pan.baidu.com/s/1E1JVhPBoTZkx90Zf5pmiuw
上傳rabbitmq-server-3.4.1-1.noarch.rpm文件到/usr/local/src/rabbitmq/
安裝:
rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm
啓動、停止
service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server restart
設置開機啓動:
chkconfig rabbitmq-server on
設置配置文件:
cd /etc/rabbitmq
cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/
mv rabbitmq.config.example rabbitmq.config
開啓用戶遠程訪問:
vi /etc/rabbitmq/rabbitmq.config
注意要去掉後面的逗號。
開啓web界面管理工具:
rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart
防火牆開放15672端口:
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
/etc/rc.d/init.d/iptables save
5、簡單應用
springboot中使用rabbitmq
在rabbitmq控制檯新建隊列:test.queue
新建springboot maven項目,加入rabbitmq依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
application.properties配置中加入:
#spring.rabbitmq.host=localhost
#spring.rabbitmq.port=5672
#spring.rabbitmq.username=admin
#spring.rabbitmq.password=123456
#或者使用address屬性
spring.rabbitmq.addresses=amqp://admin:123456@localhost
監聽消息代碼:
@Component
public class MyRabbitListener {
@RabbitListener(queues = "test.queue")
public void processMessage(byte[] content) {
System.out.println("監聽到消息: " + new String(content));
}
}
啓動服務,從rabbitmq控制檯發送下消息: