RabbitMQ目录
1. docker安装RabbitMQ
下载地址: Downloading and Installing RabbitMQ
docker run -it --rm --name rabbitmq2 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 5672:5672 -p 15672:15672 rabbitmq:3-management
5672是Rabbitmq 默认TCP监听端口
15672是RabbitMQ 的 Web 管理界面端口
下面浏览器访问:
2. RabbitMQConfig配置文件
2.1 RabbitMQConfig
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitMQConfig {
/**
* direct交换机名称
*/
public static final String DIRECT_EXCHANGE="directExchange";
/**
* direct队列名称
*/
public static final String DIRECT_QUEUE="directQueue";
/**
* direct路由Key
*/
public static final String DIRECT_ROUTINGKEY="directRoutingKey";
/**
* 定义一个direct交换机
* @return
*/
@Bean
public DirectExchange directExchange(){
return new DirectExchange(DIRECT_EXCHANGE);
}
/**
* 定义一个direct队列
* @return
*/
@Bean
public Queue directQueue(){
return new Queue(DIRECT_QUEUE);
}
/**
* 定义一个队列和交换机的绑定
* @return
*/
@Bean
public Binding directBinding(){
return BindingBuilder.bind(directQueue()).to(directExchange()).with(DIRECT_ROUTINGKEY);
}
}
2.1 new Queue重载参数解析
-
durable:是否持久化,true 交换机或者队列会存到本地文件数据库,当mq重启,依然在,false的话,重启或者断电,就没了;默认true
-
autoDelete:是否自动删除,true当没有Consumer消费者时候,自动删除掉;默认false
-
exclusive:是否独占:true的话只有一个消费者监听这个队列。默认false
3. 生产者consumer
3.1 引入依赖
3.2 配置文件
3.3 发送消息
4. 创建消费者consumer
4.1 引入依赖(同上)
4.2 配置(同上)
除了端口不同
4.3 消费
源码地址: https://gitee.com/never_enough/rabbitmqtest