一、什么是RabbitMQ?
rabbitmq是一款消息中间件,本身是一个实现了MQ理念的服务组件,主要是用来在分布式架构体系中,进行消息传递的。
常见的MQ产品:RabbitMQ、RocketMQ、Kafka
二、RabbitMQ的安装
1)上传Rabbitmq的安装包以及erlang的安装包
2)安装erlang语言的基础环境
rpm -ivh erlang-20.1.7-1.el6.x86_64.rpm
3)安装rabbitmq
rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm
相关的启动命令:
service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server restart
4)配置rabbitmq
拷贝配置文件:
cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
修改配置文件:
vim /etc/rabbitmq/rabbitmq.config
5)启动rabbitmq的web管理页面插件
rabbitmq-plugins enable rabbitmq_management
重启rabbitmq
6)开放端口:
15672:是rabbitmq后台管理程序的端口
5672:是rabbitmq操作服务的端口
三、Rabbitmq的基本模型
四、Rabbitmq的基本使用
1)添加依赖
2)编写提供方
3)编写消费方
注意:
· 队列的创建可以在消费方,也可以在提供方,在哪边创建,就必须先启动哪方。在实际开发过程中,为了消除这种启动的顺序,通常在两方都进行队列的声明。
· 相同名称的队列可以重复声明,但是后续的参数必须相同,如果参数不同,第二次声明就会报错
· rabbitmq的消费方是一个同步消费的过程(第一个消息没有消费完,就不能消费第二个消息)
· 在实际开发过程中,通常在rabbitmq的消费端使用一个线程池进行消费处理
注意:
· 模式会让多个消费者绑定到同一个队列上,消费的方式和第一种模式差不多,但是是轮训消费的
1)提供方
2)消费方
注意:
· 交换机不具备存储数据的能力,如果没有队列绑定到交换机上,发送给交换机的消息会丢失
· 该例使用的是fanout类型的交换机,该类型的交换机会广播消息(所有发送给这个交换机的消息,会广播给所有绑定在这个交换机上的队列)
· 处理队列可以绑定交换机之外,交换机也能绑定交换机