0


RabbitMQ(Docker 单机部署)

序言

本文给大家介绍如何使用 Docker 单机部署 RabbitMQ 并与 SpringBoot 整合使用。

一、部署流程

  1. 拉取镜像docker pull rabbitmq:3-management
  2. 镜像拉取成功之后使用下面命令启动 rabbitmq 容器docker run \# 指定用户名-eRABBITMQ_DEFAULT_USER=username \# 指定密码-eRABBITMQ_DEFAULT_PASS=password \# 指定容器名称--name mq \# 指定主机名称(任意)--hostname mq1 \# WEB 浏览器访问端口-p15672:15672 \# AMQP 协议端口-p5672:5672 \# 后台启动-d\# 引用的镜像 rabbitmq:3-management
  3. 打开浏览器输入网址 localhost:15672 进入 RabbitMQ 管理页面image.png

二、SpringBoot 整合 RabbitMQ

2.1 使用 RabbitMQ 客户端

  1. 引入依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.6</version></parent><!-- amqp 依赖--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency></dependencies>
  2. 使用案例publicvoidstaticmain()throwsIOException,TimeoutException{// 配置连接ConnectionFactory factory =newConnectionFactory(); factory.setHost("xxx.xxx.xxx.xxx"); factory.setPort(5672); factory.setVirtualHost("/"); factory.setUsername("rabbit"); factory.setPassword("rabbit");// 获取连接对象Connection connection = factory.newConnection();// 获取频道Channel channel = connection.createChannel();// 创建队列String queueName ="simple.queue"; channel.queueDeclare(queueName,false,false,false,null);// 订阅消息 channel.basicConsume(queueName,true,newDefaultConsumer(channel){@OverridepublicvoidhandleDelivery(String consumerTag,Envelope envelope,AMQP.BasicProperties properties,byte[] body)throwsIOException{String msg =newString(body);System.out.println(msg);}});}

2.2 使用 SpringAMQP

  1. 引入依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.6</version></parent><!-- amqp 依赖--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency></dependencies>
  2. application.yml 文件中编写配置spring:rabbitmq:host: xxx.xxx.xxx.xxx port:5672virtual-host: / username: rabbit password: rabbit
  3. 监听消息@ComponentpublicclassSpringRabbitListener{@RabbitListener(queues ="simple.queue")publicvoidlistenMessage(String msg){System.out.println(msg);}}
  4. 发送消息@ResourceprivateRabbitTemplate rabbitTemplate;@TestpublicvoidsendTest(){// 需要发送的队列String queueName ="simple.queue";// 需要发送的消息String msg ="This is a cool message!";// 发送消息 rabbitTemplate.convertAndSend(queueName, msg);}

推荐阅读

  1. 深入了解 Arthas:Java 应用程序诊断利器
  2. 基于 AI 的数据库助手-Chat2DB
  3. EasyExcel 处理 Excel
  4. 实体映射解决方案-MapStruct
  5. 动态切换数据源的最佳实践
标签: docker 容器 rabbitmq

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

“RabbitMQ(Docker 单机部署)”的评论:

还没有评论