RabbitMQ(Docker 单机部署)

序言

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

一、部署流程

  1. 拉取镜像

    docker pull rabbitmq:3-management
    
  2. 镜像拉取成功之后使用下面命令启动 rabbitmq 容器

    docker run \# 指定用户名-e RABBITMQ_DEFAULT_USER=username \# 指定密码-e RABBITMQ_DEFAULT_PASS=password \# 指定容器名称--name mq \# 指定主机名称(任意)--hostname mq1 \# WEB 浏览器访问端口-p 15672:15672 \# AMQP 协议端口-p 5672: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. 使用案例

    public void static main() throws IOException, TimeoutException {// 配置连接ConnectionFactory factory = new ConnectionFactory();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, new DefaultConsumer(channel) {@Overridepublic void handleDelivery(String consumerTag,Envelope envelope,AMQP.BasicProperties properties,byte[] body) throws IOException {String msg = new String(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.xxxport: 5672virtual-host: /username: rabbitpassword: rabbit
    
  3. 监听消息

    @Component
    public class SpringRabbitListener {@RabbitListener(queues = "simple.queue")public void listenMessage(String msg) {System.out.println(msg);}
    }
    
  4. 发送消息

    @Resource
    private RabbitTemplate rabbitTemplate;@Test
    public void sendTest() {// 需要发送的队列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. 动态切换数据源的最佳实践

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/322476.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Intel® Platform Firmware Resilience (Intel® PFR):英特尔® 平台固件恢复力(Intel® PFR)

为了降低与固件相关的安全风险&#xff0c;英特尔为服务器平台开发了英特尔平台固件恢复力&#xff08;Intel PFR&#xff09;。 此功能可保护关键固件在启动和运行时免受攻击。这可以被视为是 Cerberus 项目或 NIST SP800-193 的实现。 英特尔平台固件恢复力&#xff08;Int…

uniapp——列表分享当前话题(一个页面多个分享)

案例 分享的时候弹出对应的标题和默认第一张图片 代码 <view v-for"(item,index) in list" :key"index"><button open-type"share" :id"index" click.stop"()>{}"><image src"/static/images/cir…

跟随Facebook的足迹:社交媒体背后的探索之旅

在当今数字化时代&#xff0c;社交媒体已经成为了人们日常生活中不可或缺的一部分。而在这庞大的社交媒体网络中&#xff0c;Facebook作为其中的巨头&#xff0c;一直在引领着潮流。从创立之初的一个大学社交网络到如今的全球性平台&#xff0c;Facebook的发展历程承载了无数故…

DELL EMC unity存储系统如何初始化

在客户的存储使用过程中&#xff0c;经常会碰到一些场景需要对存储系统做重新初始化&#xff0c;就是回到出厂时候的配置。比如&#xff0c;客户设备要利旧&#xff0c;二次使用&#xff0c;一般都要回到出厂状态做重新配置的动作。存储严重故障&#xff0c;没有能力修复或者数…

华为OD机试【城市聚集度】(java)(200分)

1、题目描述 一张地图上有N个城市&#xff0c;城市和城市之间有且只有一条道路相连&#xff0c;要么直接相连&#xff0c;要么通过其他城市中转相连(可中转一次或多次)。城市与城市之间的道路都不会成环。 当切断通往某城市i的所有道路后&#xff0c;地图上将分成多个连通的城…

医疗图像处理2023年CVPR:Label-Free Liver Tumor Segmentation-无标签肝肿瘤分割

目录 一、摘要 二、介绍 三、相关工作 四、网络框架 1.位置选择 2.纹理处理 3.形状生成 4.后处理 5.参数设计 五、实验 1.数据集&#xff1a; 2.评价指标&#xff1a; 3.实现&#xff1a; 4.结果&#xff1a; 六、结论 一、摘要 通过在CT扫描中使用合成肿瘤&am…

Mybatis Plus二级缓存 使用@CacheNamespace 失效@CacheNamespace和@CacheNamespaceRef

1、注解 CacheNamespace(flushInterval 100000,eviction LruCache.class,readWrite false,size 1024)2、xml配置 <cache eviction "LRU" flushInterval "100000" readOnly "true" size "1024"/> 二级缓存&#xff0c;配置文…

vue快速入门(五十)重定向

注释很详细&#xff0c;直接上代码 上一篇 本篇建立在之前篇目前提下针对重定向进行演示 新增内容 路由重定向写法 源码 src/router/index.js //导入所需模块 import Vue from "vue"; import VueRouter from "vue-router"; import myMusic from "/v…

【C++】环境搭建CentOS Clion报错Unsupported git Version 1.8.3.1

【C】环境搭建Clion-Unsupported git Version 1.8.3.1 Git升级步骤1.卸载旧版本2.安装依赖3.下载git最新版本包4.解压git文件包5.编译文件5.将git加入环境变量6.验证git版本 如上图所示&#xff0c;报错Unsupported git Version 1.8.3.1 At least 2.17.0 is required 报错意思…

Pytorch常用的函数(九)torch.gather()用法

Pytorch常用的函数(九)torch.gather()用法 torch.gather() 就是在指定维度上收集value。 torch.gather() 的必填也是最常用的参数有三个&#xff0c;下面引用官方解释&#xff1a; input (Tensor) – the source tensordim (int) – the axis along which to indexindex (Lo…

Tomcat端口占用解决方案

Windows操作系统 出现这种情况&#xff1a; Error was Port already in use :40001&#xff1b;nested exception is :java.net.BindException: Address already in use : JVM_Bind; 步骤1&#xff1a;按下winR键&#xff0c;输入cmd 步骤2&#xff1a;输入以下命令 netstat …

基于MPPT最大功率跟踪和SVPWM的光伏三相并网逆变器simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于MPPT最大功率跟踪和SVPWM的光伏三相并网逆变器simulink建模与仿真。包括PV模块&#xff0c;MPPT模块&#xff0c;SVPWM模块&#xff0c;电网模块等。 2.系统仿真结果 1不…

92、动态规划-最小路径和

思路&#xff1a; 还是一样&#xff0c;先使用递归来接&#xff0c;无非是向右和向下&#xff0c;然后得到两种方式进行比较&#xff0c;代码如下&#xff1a; public int minPathSum(int[][] grid) {return calculate(grid, 0, 0);}private int calculate(int[][] grid, int …

吴恩达机器学习笔记:第 9 周-16推荐系统(Recommender Systems) 16.5-16.6

目录 第 9 周 16、 推荐系统(Recommender Systems)16.5 向量化&#xff1a;低秩矩阵分解16.6 推行工作上的细节&#xff1a;均值归一化 第 9 周 16、 推荐系统(Recommender Systems) 16.5 向量化&#xff1a;低秩矩阵分解 在上几节视频中&#xff0c;我们谈到了协同过滤算法&…

如何使用client-go构建pod web shell

代码示例及原理 原理是利用websocket协议实现对pod的exec登录&#xff0c;利用client-go构造与远程apiserver的长连接&#xff0c;将对pod容器的输入和pod容器的输出重定向到我们的io方法中&#xff0c;从而实现浏览器端的虚拟终端的效果消息体结构如下 type Connection stru…

路由策略与路由控制

1.路由控制工具 匹配工具1&#xff1a;访问控制列表 &#xff08;1&#xff09;通配符 当进行IP地址匹配的时候&#xff0c;后面会跟着32位掩码位&#xff0c;这32位称为通配符。 通配符&#xff0c;也是点分十进制格式&#xff0c;换算成二进制后&#xff0c;“0”表示“匹配…

element-ui table sortable排序 掉后端接口方式

实例: 官方解释:如果需要后端排序&#xff0c;需将sortable设置为custom&#xff0c;同时在 Table 上监听sort-change事件&#xff0c;在事件回调中可以获取当前排序的字段名和排序顺序&#xff0c;从而向接口请求排序后的表格数据。 1.table上要加 sort-change"sortCha…

15_Scala面向对象编程_访问权限

文章目录 Scala访问权限1.同类中访问2.同包不同类访问3.不同包访问4.子类权限小结 Scala访问权限 知识点概念 private --同类访问private[包名] --包私有&#xff1b; 同类同包下访问protected --同类&#xff0c;或子类 //同包不能访问(default)(public)默认public --公…

Python | Leetcode Python题解之第78题子集

题目&#xff1a; 题解&#xff1a; class Solution:def subsets(self, nums: List[int]) -> List[List[int]]:self.res []self.backtrack([], 0, nums)return self.resdef backtrack(self, sol, index, nums):self.res.append(sol)for i in range(index, len(nums)):self…

物联网实战--平台篇之(四)账户后台交互

目录 一、交互逻辑 二、请求验证码 三、帐号注册 四、帐号/验证码登录 五、重置密码 本项目的交流QQ群:701889554 物联网实战--入门篇https://blog.csdn.net/ypp240124016/category_12609773.html 物联网实战--驱动篇https://blog.csdn.net/ypp240124016/category_12631…