0


RabbitMQ的安装和使用

文章目录

安装RabbitMQ

下载地址

  1. RabbitMQ国内下载地址:https://repo.huaweicloud.com/rabbitmq-server/
  2. .Erlang环境安装包下载: https://erlang.org/download/

Erlang应用程序安装教程

  1. 选择下载的Erlang安装包,双击运行在这里插入图片描述
  2. 选择安装目录,点击next在这里插入图片描述
  3. 安装成功后,需要配置环境变量,将之前安装的Erlang的bin目录路径配置到path中在这里插入图片描述
  4. 点击确定并保存,打开控制台,输入erl出现如下所示则证明环境变量配置生效。在这里插入图片描述

RabbitMQ安装教程

  1. 选择已经下载的rabbitmq-server-3.12.1,双击进入安装流程;
  2. 选择安装路径,点击next;
  3. 安装成功。在这里插入图片描述 在开始菜单中,点击RabbitMQ Service Start开启服务,可以到服务管理器中去确认是否开启成功,也可以看控制台的状态。在这里插入图片描述 RabbitMQ服务搭建并启动后,需要对RabbitMQ进行配置。

说明
4369:epmd,RabbitMQ节点和CLI工具使用的对等发现服务
5672,5671:由AMQP 0-9-1和1.0客户端使用,不带TLS和TLS
25672:Erlang分发用于节点间和CLI工具通信,并从动态范围分配(默认情况下限制为单个端口,计算为AMQP端口+ 20000)。有关详细信息,请参阅网络指南。
15672:HTTP API客户端和rabbitmqadmin(仅当启用管理插件时)
61613,61414:没有和使用TLS的STOMP客户端(只有启用了STOMP插件)
1883,8883 :MQTT客户端没有和带有TLS,如果启用了MQTT插件
15674:STOMP-over-WebSockets客户端(只有启用了Web STOMP插件)
15675:MQTT-over-WebSockets客户端(仅当启用了Web MQTT插件时

SpringBoot集成RabbitMQ

下面我们通过在SpringBoot项目中集成RabbitMQ,并实现一个简单的发送、接收消息的例子来对RabbitMQ有一个只管的感受和理解。
步骤为:

  1. 新建一个SpringBoot工程;
  2. 在pom.xml中引入如下依赖内容
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId><version>3.2.3</version></dependency>
  1. 在application.properties中配置关于RabbitMQ地连接和用户信息,可以在安装地RabbitMQ控制台上创建。
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
  1. 创建消息生产者Sender。通过注入AmqpTemplate接口的实例来实现消息的发送,AmqpTemplate接口定义了一套针对AMQP协议的基础操作。在SpringBoot中会根据配置来注入其具体实现。在该消息生产者中,我么会产生一个字符串,并发送到名为“hello”的队列中。
@ComponentpublicclassSender{@AutowiredprivateAmqpTemplate rabbitTemplate;publicvoidsend(){String context="hello"+newDate();System.out.println("Sender:"+context);this.rabbitTemplate.convertAndSend("hello",context);}}
  1. 创建消息消费者Receiver。通过RabbitListener注解定义到该类对hello队列的监听,并使用@RabbitHandler注解来指定消息的处理方法。所以,该消费者实现了对hello队列的消费,消费操作为输出消息的字符串内容。
@Component@RabbitListener(queues="hello")publicclassReceiver{@RabbitHandlerpublicvoidprocess(String hello){System.out.println("Receiver:"+hello);}}
  1. 创建RabbitMQ的配置类RabbitConfig,用来配置队列、交换器、路由等高级信息。
@ConfigurationpublicclassRabbitConfig{@BeanpublicQueuehelloQueue(){returnnewQueue();}}
  1. 创建单元测试类,用来调用消息生产。
@AutowiredprivateSender sender;@Testpublicvoidhello()throwsException{
        sender.send();}
  1. 启动应用主类,从控制台中,我们可以看到如下内容,程序访问了一个127.0.0.1:5672中Springcloud的连接。完成程序编写后,下面开始尝试运行,首先确保RabbitMQ Server已经开始运行,然后进行下面的操作;
2024-03-14T09:21:47.500+08:00INFO15856---[  restartedMain]o.s.a.r.c.CachingConnectionFactory:Creatednew connection: rabbitConnectionFactory#40264ccc:0/SimpleConnection@137b3244[delegate=amqp://[email protected]:5672/, localPort=62147]

在这里插入图片描述
运行单元测试类,我们可以看到控制台中输出下面的内容,消息被发送到了RabbitMQ Server的hello队列中。同时我们通过RabbitMQ的控制面板,可以看到Connection和Channels中包含当前连接的条目。

Sender:helloThu Mar1409:58:13CST2024

切换到应用主类的控制台,我们可以看到类似如下输出,消费者对hello队列的监听程序执行了,并输出了接收到的消息信息。

Receiver:helloThu Mar1409:58:13CST2024

通过上面简单的示例,我们在SpringBoot工程中引入spring-boot-starter-amqp模块,进行简单配置就完成了RabbitMQ的消息生产和消费的开发内容。

标签: rabbitmq 分布式 java

本文转载自: https://blog.csdn.net/weixin_40618306/article/details/136679615
版权归原作者 weixin_40618306 所有, 如有侵权,请联系我们删除。

“RabbitMQ的安装和使用”的评论:

还没有评论