RabbitMQ是实现了高级队列消息协议(AMQP: Advanced Message Queuing Protocol)的开源消息代理软件,它也被称作为面向消息的中间件。RabbitMQ服务器使用了Erlang语言编写而成,它具有高性能,可伸缩的特性。
各个平台的安装请参考官网链接:RabbitMQ安装
#
匹配一个或者多个词,使用*
匹配正好一个词。durable
等于1(1是持久化)。durable
等于1(1是持久化)。delivery_mode
等于2(1是非持久化)。安装并开启RabbitMQ服务
新建一个Spring Boot工程
添加依赖:spring-boot-starter-amqp
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
配置RabbitMQ
spring:
rabbitmq:
host: 127.0.0.1
port: 5672
userName: admin
password: admin
virtual-host: /
RabbitMQ配置类
@Configuration
public class RabbitConfig {
/**
* 声明交换机
* String: 交换机名称
* Boolean: 是否持久化
* Boolean: 是否自动删除
*/
/** Direct Exchange **/
@Bean
public DirectExchange directExchange() {
return new DirectExchange("DIRECT_EXCHANGE", true, false);
}
/** Topic Exchange **/
@Bean
public TopicExchange topicExchange() {
return new TopicExchange("TOPIC_EXCHANGE", true, false);
}
/** Fanout Exchange **/
@Bean
public FanoutExchange fanoutExchange() {
return new FanoutExchange("FANOUT_EXCHANGE", true, false);
}
/**
* 声明消息队列
* String: 消息队列名称
* Boolean: 是否持久化
*/
@Bean
public Queue helloQueue() {
return new Queue("HELLO_QUEUE", true);
}
@Bean
public Binding helloBinding() {
return BindingBuilder.bind(helloQueue()).to(directExchange()).with("mq.hello");
}
}
RabbitMQ生产者
@Component
public class producer {
@Autowired
private AmqpTemplate rabbitTemplate;
public void send() {
rabbitTemplate.convertAndSend("HELLO_QUEUE", "hello mq!");
}
}
RabbitMQ消费者
@Component
@RabbitListener(queues = "HELLO_QUEUE")
public class consumer {
@RabbitHandler
public void process(String message) {
System.out.println(message);
}
}
原文:https://www.cnblogs.com/jeff-chang/p/13670285.html