RabbitMQ(安装配置以及与SpringBoot整合)
文章目录
- 1.基本介绍
- 2.Linux下安装配置RabbitMQ
- 1.安装erlang环境
- 1.将文件上传到/opt目录下
- 2.进入/opt目录下,然后安装
- 2.安装RabbitMQ
- 1.进入/opt目录,安装所需依赖
- 2.安装MQ
- 3.基本配置
- 1.启动MQ
- 2.查看MQ状态
- 3.安装web管理插件
- 4.安装web管理插件超时的解决方案
- 1.修改etc/hosts文件,修改主机名
- 2.重启MQ如果还报错就修改ip与本机ip相同
- 5.设置开机自启
- 6.关闭MQ
- 7.组合指令
- 1.启动MQ并查看状态
- 2.关闭MQ并查看状态
- 3.重启MQ并查看状态
- 4.RabbitMQ管控台配置
- 1.开放15672端口
- 1.宝塔开启
- 2.腾讯云开启,仅限本机登录
- 2.访问 http://ip:15672 进行登录
- 1.使用guest用户登录,出现权限问题
- 2.进入/etc/rabbitmq 编辑 rabbitmq.config
- 3.将下面这句话粘贴进去
- 4.重启MQ,使配置生效
- 5.再次登录,成功!
- 3.控制台参数解析
- 1.端口
- 2.交换机,默认七个
- 4.用户管理
- 1.进入Admin
- 2.添加用户test,默认不能访问虚拟主机
- 3.给test用户分配可以访问的虚拟主机
- 4.为了安全,修改guest用户的密码
- 5.增加虚拟主机
- 1.添加/test的虚拟主机
- 2.配置test用户可以访问虚拟主机/test
- 3.删除test用户
- 5.SpringBoot集成MQ
- 1.需求分析
- 2.环境配置
- 1.引入依赖
- 2.MQ的端口配置
- 1.编辑MQ的配置文件
- 2.修改端口5672为6783(防止被攻击)
- 3.重启MQ使其生效
- 4.测试是否成功
- 5.宝塔开启6783端口
- 6.腾讯云开启
- 3.配置application.yml
- 4.RabbitMQ配置类创建队列 RabbitMQConfig.java
- 3.基本使用
- 1.编写消息发送者 MQSender.java
- 2.编写消息接受者 MQReceiver.java
- 3.控制层调用发送消息的方法
- 4.启动测试
- 1.访问 http://localhost:9092/seckill/mq 成功发送和接受消息
- 2.http://ip:15672 在控制台可以进行监控
1.基本介绍
2.Linux下安装配置RabbitMQ
1.安装erlang环境
1.将文件上传到/opt目录下
2.进入/opt目录下,然后安装
cd /opt && rpm -ivh erlang-21.3-1.el7.x86_64.rpm
2.安装RabbitMQ
1.进入/opt目录,安装所需依赖
cd /opt && yum install socat -y
2.安装MQ
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
3.基本配置
1.启动MQ
/sbin/service rabbitmq-server start
2.查看MQ状态
/sbin/service rabbitmq-server status
3.安装web管理插件
rabbitmq-plugins enable rabbitmq_management
4.安装web管理插件超时的解决方案
1.修改etc/hosts文件,修改主机名
2.重启MQ如果还报错就修改ip与本机ip相同
5.设置开机自启
chkconfig rabbitmq-server on
6.关闭MQ
/sbin/service rabbitmq-server stop
7.组合指令
1.启动MQ并查看状态
/sbin/service rabbitmq-server start && /sbin/service rabbitmq-server status
2.关闭MQ并查看状态
/sbin/service rabbitmq-server stop && /sbin/service rabbitmq-server status
3.重启MQ并查看状态
/sbin/service rabbitmq-server stop && /sbin/service rabbitmq-server start && /sbin/service rabbitmq-server status
4.RabbitMQ管控台配置
1.开放15672端口
1.宝塔开启
systemctl start firewalld && firewall-cmd --permanent --add-port=15672/tcp && firewall-cmd --reload && firewall-cmd --query-port=15672/tcp
2.腾讯云开启,仅限本机登录
2.访问 http://ip:15672 进行登录
1.使用guest用户登录,出现权限问题
2.进入/etc/rabbitmq 编辑 rabbitmq.config
cd /etc/rabbitmq && vim rabbitmq.config
3.将下面这句话粘贴进去
[
{rabbit,[{loopback_users,[]}]
}
].
4.重启MQ,使配置生效
/sbin/service rabbitmq-server stop && /sbin/service rabbitmq-server start && /sbin/service rabbitmq-server status
5.再次登录,成功!
3.控制台参数解析
1.端口
2.交换机,默认七个
4.用户管理
1.进入Admin
2.添加用户test,默认不能访问虚拟主机
3.给test用户分配可以访问的虚拟主机
4.为了安全,修改guest用户的密码
5.增加虚拟主机
1.添加/test的虚拟主机
2.配置test用户可以访问虚拟主机/test
3.删除test用户
5.SpringBoot集成MQ
1.需求分析
2.环境配置
1.引入依赖
<!--rabbitmq-需要的 AMQP 依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>
2.MQ的端口配置
1.编辑MQ的配置文件
cd /etc/rabbitmq && vim rabbitmq.config
2.修改端口5672为6783(防止被攻击)
[{rabbit, [{tcp_listeners, [{"0.0.0.0", 6783}]},{loopback_users, []}]}
].
3.重启MQ使其生效
/sbin/service rabbitmq-server stop && /sbin/service rabbitmq-server start && /sbin/service rabbitmq-server status
4.测试是否成功
netstat -plnt | grep 6783
5.宝塔开启6783端口
systemctl start firewalld && firewall-cmd --permanent --add-port=6783/tcp && firewall-cmd --reload && firewall-cmd --query-port=6783/tcp
6.腾讯云开启
3.配置application.yml
# RabbitMQ 配置rabbitmq:# 服务器地址host: # 用户名username: # 密码password: ******# 虚拟主机virtual-host: /# 端口port: 6783# 消息监听器配置listener:simple:#消费者最小数量concurrency: 10#消费者最大数量max-concurrency: 10#限制消费者,每次只能处理一条消息,处理完才能继续下一条消息prefetch: 1#启动时是否默认启动容器,默认为 trueauto-startup: true#被拒绝时重新进入队列的default-requeue-rejected: true# 消息重试配置template:retry:#启用消息重试机制,默认为 falseenabled: true#初始重试间隔时间initial-interval: 1000ms#重试最大次数,默认为 3 次max-attempts: 3#重试最大时间间隔,默认 10000msmax-interval: 10000ms#重试的间隔乘数#配置 2 的话,第一次等 1s,第二次等 2s,第三次等 4smultiplier: 1
4.RabbitMQ配置类创建队列 RabbitMQConfig.java
package com.sxs.seckill.config;import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** Description:** @Author sun* @Create 2024/5/11 13:58* @Version 1.0*/
@Configuration
public class RabbitMQConfig {private static final String QUEUE = "queue";/*** 1. 配置队列* 2. 队列名为 queue* 3. true 表示: 持久化* durable: 队列是否持久化。 队列默认是存放到内存中的,rabbitmq 重启则丢失,* 若想重启之后还存在则队列要持久化,* 保存到 Erlang 自带的 Mnesia 数据库中,当 rabbitmq 重启之后会读取该数据库*/@Beanpublic Queue queue() {return new Queue(QUEUE, true);}
}
3.基本使用
1.编写消息发送者 MQSender.java
package com.sxs.seckill.rabbitmq;import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;import javax.annotation.Resource;/*** Description: 消息发送者** @Author sun* @Create 2024/5/11 14:04* @Version 1.0*/
@Service
@Slf4j
public class MQSender {@Resourceprivate RabbitTemplate rabbitTemplate;public void send(Object message) {log.info("发送消息: " + message);// 发送消息到队列,需要指定在配置类中配置的队列名rabbitTemplate.convertAndSend("queue", message);}
}
2.编写消息接受者 MQReceiver.java
package com.sxs.seckill.rabbitmq;import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;/*** Description: 消息接收者** @Author sun* @Create 2024/5/11 14:08* @Version 1.0*/
@Service
@Slf4j
public class MQReceiver {// 方法,接收消息@RabbitListener(queues = "queue")public void receive(Object message) {log.info("接收消息: " + message);}
}
3.控制层调用发送消息的方法
package com.sxs.seckill.controller;import com.sxs.seckill.rabbitmq.MQSender;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import javax.annotation.Resource;/*** Description:** @Author sun* @Create 2024/5/11 14:13* @Version 1.0*/
@Controller
public class RabbitMQHandler {@Resourceprivate MQSender mqSender;// 调用发送消息的方法@RequestMapping("/mq")@ResponseBodypublic void mq() {mqSender.send("hello rabbitmq");}
}
4.启动测试
1.访问 http://localhost:9092/seckill/mq 成功发送和接受消息
2.http://ip:15672 在控制台可以进行监控
相关文章:

RabbitMQ(安装配置以及与SpringBoot整合)
文章目录 1.基本介绍2.Linux下安装配置RabbitMQ1.安装erlang环境1.将文件上传到/opt目录下2.进入/opt目录下,然后安装 2.安装RabbitMQ1.进入/opt目录,安装所需依赖2.安装MQ 3.基本配置1.启动MQ2.查看MQ状态3.安装web管理插件4.安装web管理插件超时的解决…...

JUC下的BlockingQueue详解
BlockingQueue是Java并发包(java.util.concurrent)中提供的一个接口,它扩展了Queue接口,增加了阻塞功能。这意味着当队列满时尝试入队操作,或者队列空时尝试出队操作,线程会进入等待状态,直到队列状态允许操作继续。这…...

ChatGPT理论分析
ChatGPT "ChatGPT"是一个基于GPT(Generative Pre-trained Transformer)架构的对话系统。GPT 是一个由OpenAI 开发的自然语言处理(NLP)模型,它使用深度学习来生成文本。以下是对ChatGPT进行理论分析的几个主…...
算法提高之魔板
算法提高之魔板 核心思想:最短路模型 将所有状态存入队列 更新步数 同时记录前驱状态 #include <iostream>#include <cstring>#include <algorithm>#include <unordered_map>#include <queue>using namespace std;string start&qu…...

服务器内存占用不足会怎么样,解决方案
在当今数据驱动的时代,服务器对于我们的工作和生活起着举足轻重的作用。而在众多影响服务器性能的关键因素当中,内存扮演着极其重要的角色。 服务器内存,也称RAM(Random Access Memory),是服务器核心硬件部…...
elasticsearch文档读写原理大致分析一下
文档写简介 客户端通过hash选择一个node发送请求,专业术语叫做协调节点 协调节点会对document进行路由,将请求转发给对应的primary shard primary shard在处理完数据后,会将document 同步到所有replica shard 协调节点将处理结果返回给…...
1 开发环境
开发环境(platformio python arduino框架)的搭建可以参考b站upESP32超详细教程-使用VSCode(基于Arduino框架)哔哩哔哩bilibili 这里推荐离线安装esp32库文件,要不然要等很久(b站教程很多) 搭…...
云视频,也称为视频云服务,是一种基于云计算技术理念的视频流媒体服务
云视频,也称为视频云服务,是一种基于云计算技术理念的视频流媒体服务。它基于云计算商业模式,为视频网络平台服务提供强大的支持。在云平台上,所有的视频供应商、代理商、策划服务商、制作商、行业协会、管理机构、行业媒体和法律…...

[Vision Board创客营]--使用openmv识别阿尼亚
文章目录 [Vision Board创客营]使用openmv识别阿尼亚介绍环境搭建训练模型上传图片生成模型 使用结语 [Vision Board创客营]使用openmv识别阿尼亚 🚀🚀五一和女朋友去看了《间谍过家家 代号:白》,入坑二刺螈(QQ头像也换…...

【Linux:lesson1】的基本指令
🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 🚗打开Xshell,登陆root…...
20240511日记
今天工作内容: 1.二期2号机EAP测试 2.二期开门机器暂停(停轴,停流水线电机),关闭门后继续功能测试 3.针点位偏移还需要调整,未进行大批量验证是否偏移(S3模板点位测试,两台机各焊…...

蓝桥杯成绩已出
蓝桥杯的成绩早就已经出来了,虽然没有十分惊艳 ,但是对于最终的结果我是心满意足的,感谢各位的陪伴,关于蓝桥杯的刷题笔记我已经坚持更新了49篇,但是现在即将会告别一段落,人生即将进入下一个规划。我们一起…...
.kat6.l6st6r勒索病毒数据怎么处理|数据解密恢复
导言: 在数字时代的洪流中,网络安全领域的新挑战层出不穷。近期,.kat6.l6st6r勒索病毒的出现再次打破了传统安全防护的界限。这种新型勒索病毒不仅具有高超的加密技术,更以其独特的传播方式和隐蔽性,给全球用户带来了…...
Spring Batch 是什么?主要用于什么场景?
Spring Batch是一个开源的、基于Spring框架的批量处理框架,它提供了一系列用于批量数据处理的工具和API。Spring Batch的主要目标是简化和标准化批量数据的处理过程,使得开发者可以更加专注于业务逻辑的实现,而不是批量处理的复杂性。 Sprin…...
SQL-慢查询的定位及优化
定位慢查询sql 启用慢查询日志: 确保MySQL实例已经启用了慢查询日志功能。可以通过以下命令查看是否启用: SHOW VARIABLES LIKE slow_query_log;如果未启用,可以通过以下命令启用: SET GLOBAL slow_query_log ON;配置慢查询日志&…...
练习题(2024/5/11)
1逆波兰表达式求值 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、* 和 / 。每个操作数(运算对象)都可以是一个整数或…...
linux系统服务器中常见故障及排查方法
目录 故障1:系统无响应 故障2:网络连接问题 故障3:文件系统错误 故障4:软件包依赖问题 故障5:用户权限问题 故障6:服务无法正常工作 故障7:磁盘空间不足 故障8:内存不足 故障…...
产品人生(5):从“敏捷开发”到“四化时间管理法”
人生如产品,产品映人生,借鉴产品思维,快速提升软技能! 在互联网的敏捷开发实践中,经常会用到“流程化、模板化、清单化、不断优化”的思想来提升开发的效率和产品质量,并确保团队能够快速响应市场变化。大…...

超级好看的html网站维护源码
源码介绍 好看的html网站维护源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面, 源码截图 源码下载 好看的html网站维护源码...

从零开始搭建Springboot项目脚手架2:配置文件、返回值、日志等
1、多个环境与配置文件 2、统一返回值 返回值包括两种场景:正常controller的返回、异常发生之后返回 正常controller的返回:通过在controller的默认返回Response实现 异常发生之后返回:通过全局异常处理统一捕获返回 首先创建类StatusCode…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...