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…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...
