RabbitMQ实例教程:Hello RabbitMQ World之Java实现

简介:

 RabbitMQ要实现Hello World,其实也很简单。只需一个服务器来发送消息,另外有个客户端接收消息即可。


  整体的设计流程如下:

spacer.gif

wKiom1YWYgHB-hQJAAAu_VEL4ZU275.jpg


  消息生产者发送Hello到消息队列,消息消费者从队列中接收消息。


  下载依赖Jar包


  RabbitMQ要用Java实现发送消息,就必须使用Java客户端库。目前RabbizMQ的Java客户端库最新版为为 3.5.5 。可以从Maven仓库下载,也可以直接去官网下载

1
2
3
4
5
<dependency>
    <groupId>com.rabbitmq< /groupId >
    <artifactId>amqp-client< /artifactId >
    <version>3.5.5< /version >
< /dependency >


  使用Java创建发送者


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package  com.favccxx.favrabbit;
 
import  java.io.IOException;
import  java.util.concurrent.TimeoutException;
 
import  com.rabbitmq.client.Channel;
import  com.rabbitmq.client.Connection;
import  com.rabbitmq.client.ConnectionFactory;
 
public  class  Sender {
 
     private  final  static  String QUEUE_NAME =  "hello" ;
 
     public  static  void  main(String[] argv)  throws  IOException, TimeoutException {
         ConnectionFactory factory =  new  ConnectionFactory();
         factory.setHost( "localhost" );
 
         Connection connection = factory.newConnection();
         Channel channel = connection.createChannel();
         channel.queueDeclare(QUEUE_NAME,  false false false null );
         String message =  "Hello RabbitMQ World!" ;
         channel.basicPublish( "" , QUEUE_NAME,  null , message.getBytes());
         System.out.println( " [x] Sent '"  + message +  "'" );
 
     }
}


  RabbitMQ控制台监控消息队列


  运行上面的代码,从RabbitMQ控制台就可以看到刚刚发送的消息。


wKioL1YWYi2yZBRwAAEPraskuSo107.jpg


wKiom1YWYiWjcDCkAAFPUsXNPAk625.jpg


  使用Java接收消息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package  com.favccxx.favrabbit;
 
import  java.io.IOException;
import  java.util.concurrent.TimeoutException;
 
import  com.rabbitmq.client.AMQP;
import  com.rabbitmq.client.Channel;
import  com.rabbitmq.client.Connection;
import  com.rabbitmq.client.ConnectionFactory;
import  com.rabbitmq.client.Consumer;
import  com.rabbitmq.client.DefaultConsumer;
import  com.rabbitmq.client.Envelope;
 
public  class  Receiver {
 
     private  final  static  String QUEUE_NAME =  "hello" ;
 
     public  static  void  main(String[] argv)
             throws  java.io.IOException, java.lang.InterruptedException, TimeoutException {
 
         ConnectionFactory factory =  new  ConnectionFactory();
         factory.setHost( "localhost" );
         Connection connection = factory.newConnection();
         Channel channel = connection.createChannel();
 
         channel.queueDeclare(QUEUE_NAME,  false false false null );
         System.out.println( " [*] Waiting for messages. To exit press CTRL+C" );
 
         Consumer consumer =  new  DefaultConsumer(channel) {
             @Override
             public  void  handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,
                     byte [] body)  throws  IOException {
                 String message =  new  String(body,  "UTF-8" );
                 System.out.println( " [x] Received '"  + message +  "'" );
             }
         };
         channel.basicConsume(QUEUE_NAME,  true , consumer);
     }
}


  分别运行消息发送者和消息接收者,从RabbitMQ控制台可以看到实时的状况。

wKioL1YWY_Cz1LVDAAIKIpPqV5w568.jpg

  


  到此为止,RabbitMQ的Hello World工作就结束了,是不是对消息队列有了一些好感了呢?






本文转自 genuinecx 51CTO博客,原文链接:http://blog.51cto.com/favccxx/1701004,如需转载请自行联系原作者
相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
3月前
|
消息中间件 存储 JSON
rabbitmq基础教程(ui,java,springamqp)
本文提供了RabbitMQ的基础教程,包括如何使用UI创建队列和交换机、Java代码操作RabbitMQ、Spring AMQP进行消息发送和接收,以及如何使用不同的交换机类型(fanout、direct、topic)进行消息路由。
38 0
rabbitmq基础教程(ui,java,springamqp)
|
3月前
|
消息中间件 前端开发 Java
java高并发场景RabbitMQ的使用
java高并发场景RabbitMQ的使用
126 0
|
5月前
|
网络协议 物联网 测试技术
App Inventor 2 MQTT拓展入门(保姆级教程)
本文演示的是App和一个测试客户端进行消息交互的案例,实际应用中,我们的测试客户端可以看着是任意的、支持MQTT协议的硬件,通过订阅及发布消息,联网硬件与我们的App进行双向数据通信,以实现万物互联的智能控制效果。
256 2
|
5月前
|
消息中间件 监控 Ubuntu
RabbitMQ安装配置,超详细版教程
以上步骤为您提供了在Linux环境下安装RabbitMQ的详细过程。安装Erlang作为基础,然后通过添加官方源并安装RabbitMQ本身,最后对服务进行配置并启用Web管理界面。这些步骤操作简单直观,只需要跟随上述指南,即可在短时间内将RabbitMQ服务器运行起来,并进行进一步的配置和管理。不要忘记硬件和网络资源对性能的影响,确保RabbitMQ能够满足您的应用需求。
316 0
|
6月前
|
消息中间件 Java Maven
如何在Java中使用RabbitMQ
如何在Java中使用RabbitMQ
|
7月前
|
消息中间件 Java
Java一分钟之-RabbitMQ:AMQP协议实现
【6月更文挑战第11天】RabbitMQ是基于AMQP协议的开源消息队列服务,支持多种消息模式。本文介绍了RabbitMQ的核心概念:生产者、消费者、交换器、队列和绑定,以及常见问题和解决方案。例如,通过设置消息持久化和确认机制防止消息丢失,配置死信队列处理不可消费消息,以及妥善管理资源防止泄漏。还提供了Java代码示例,帮助读者理解和使用RabbitMQ。通过理解这些基础和最佳实践,可以提升RabbitMQ在分布式系统中的可靠性和效率。
154 0
Java一分钟之-RabbitMQ:AMQP协议实现
|
6月前
|
消息中间件 Java Maven
如何在Java中使用RabbitMQ
如何在Java中使用RabbitMQ
|
7月前
|
消息中间件 Java RocketMQ
教程:Spring Boot整合RocketMQ的配置与优化
教程:Spring Boot整合RocketMQ的配置与优化
|
7月前
|
消息中间件 Java Spring
最新spingboot整合rabbitmq详细教程
最新spingboot整合rabbitmq详细教程
|
7月前
|
消息中间件 存储 Java
RocketMQ下载安装、集群搭建保姆级教程
RocketMQ下载安装、集群搭建保姆级教程
135 0