概述
RabbitMQ:SpringBoot+RabbitMQ的简单实现之Direct模式
1.在pom中添加springboot对amqp的支持
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2.在application.properties中添加RabbitMQ的简单配置信息
spring.rabbitmq.host=127.0.0.1
#5672是发送消息端口,15672是管理端的端口
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
3.配置Queue(消息队列)
@Configuration
public class QueueConfig {
@Bean
public Queue queue() {
return new Queue("queue_direct");
}
}
4.编写消息生产者
@Component
public class Sender_Direct {
@Autowired
private RabbitTemplate rabbitTemplate;
public void send(String routingKey,Message message) {
rabbitTemplate.convertAndSend(routingKey,message);
}
}
5.编写消息消费者
@Component
public class Receive_Direct {
//监听器监听指定的Queue
@RabbitListener(queues="queue_direct")
public void processC(Message message) throws UnsupportedEncodingException {
MessageProperties messageProperties = message.getMessageProperties();
String contentType = messageProperties.getContentType();
System.out.println("Receive-Direct:"+new String(message.getBody(), contentType));
}
}
6.编写测试类
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestRabbitMQ_Direct {
@Autowired
private Sender_Direct sender_Direct;
@Test
public void testRabbit_Direct() {
/**
* 声明消息 (消息体, 消息属性)
*/
MessageProperties messageProperties = new MessageProperties();
//设置消息是否持久化。Persistent表示持久化,Non-persistent表示不持久化
messageProperties.setDeliveryMode(MessageDeliveryMode.NON_PERSISTENT);
messageProperties.setContentType("UTF-8");
Message message = new Message("hello,rabbit_direct!".getBytes(), messageProperties);
sender_Direct.send("queue_direct",message);
}
}
接下来就可以测试啦,首先启动接收端的应用,紧接着运行发送端的单元测试,接收端应用打印出来接收到的消息,测试即成功!
注意:Direct模式相当于一对一模式,一个消息被发送者发送后,会被转发到一个绑定的消息队列中,然后被一个接收者接收!
最后
以上就是虚拟果汁为你收集整理的RabbitMQ:SpringBoot+RabbitMQ的简单实现之Direct模式的全部内容,希望文章能够帮你解决RabbitMQ:SpringBoot+RabbitMQ的简单实现之Direct模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复