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.基本介绍

image-20240511093548128

2.Linux下安装配置RabbitMQ

1.安装erlang环境
1.将文件上传到/opt目录下

image-20240511094141520

2.进入/opt目录下,然后安装
cd /opt && rpm -ivh erlang-21.3-1.el7.x86_64.rpm

image-20240511094607525

2.安装RabbitMQ
1.进入/opt目录,安装所需依赖
cd /opt && yum install socat -y

image-20240511094818005

2.安装MQ
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm

image-20240511094907481

3.基本配置
1.启动MQ
/sbin/service rabbitmq-server start

image-20240511095035550

2.查看MQ状态
/sbin/service rabbitmq-server status

image-20240511095131428

3.安装web管理插件
rabbitmq-plugins enable rabbitmq_management

image-20240511095242435

4.安装web管理插件超时的解决方案
1.修改etc/hosts文件,修改主机名

image-20240511095330229

image-20240511095429376

2.重启MQ如果还报错就修改ip与本机ip相同

image-20240511095825597

5.设置开机自启
chkconfig rabbitmq-server on

image-20240511100028069

6.关闭MQ
/sbin/service rabbitmq-server stop

image-20240511100119207

7.组合指令
1.启动MQ并查看状态
/sbin/service rabbitmq-server start && /sbin/service rabbitmq-server status

image-20240511100244007

2.关闭MQ并查看状态
/sbin/service rabbitmq-server stop && /sbin/service rabbitmq-server status

image-20240511100349257

3.重启MQ并查看状态
/sbin/service rabbitmq-server stop && /sbin/service rabbitmq-server start && /sbin/service rabbitmq-server status

image-20240511100501531

4.RabbitMQ管控台配置
1.开放15672端口
1.宝塔开启
systemctl start firewalld && firewall-cmd --permanent --add-port=15672/tcp && firewall-cmd --reload && firewall-cmd --query-port=15672/tcp

image-20240511101456789

2.腾讯云开启,仅限本机登录

image-20240511101924825

2.访问 http://ip:15672 进行登录
1.使用guest用户登录,出现权限问题

image-20240511102159480

2.进入/etc/rabbitmq 编辑 rabbitmq.config
cd /etc/rabbitmq && vim rabbitmq.config

image-20240511102448107

3.将下面这句话粘贴进去
[
{rabbit,[{loopback_users,[]}]
}
].

image-20240511102612261

4.重启MQ,使配置生效
/sbin/service rabbitmq-server stop && /sbin/service rabbitmq-server start && /sbin/service rabbitmq-server status
5.再次登录,成功!

image-20240511102721570

3.控制台参数解析
1.端口

image-20240511102910962

2.交换机,默认七个

image-20240511102958591

4.用户管理
1.进入Admin

image-20240511103240680

2.添加用户test,默认不能访问虚拟主机

image-20240511103411192

image-20240511103438155

3.给test用户分配可以访问的虚拟主机

image-20240511103552470

image-20240511103630246

image-20240511103642661

4.为了安全,修改guest用户的密码

image-20240511104138104

5.增加虚拟主机
1.添加/test的虚拟主机

image-20240511103749131

2.配置test用户可以访问虚拟主机/test

image-20240511103850074

image-20240511103857649

3.删除test用户

image-20240511104414406

5.SpringBoot集成MQ

1.需求分析

image-20240511104725661

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

image-20240511142336772

5.宝塔开启6783端口
systemctl start firewalld && firewall-cmd --permanent --add-port=6783/tcp && firewall-cmd --reload && firewall-cmd --query-port=6783/tcp

image-20240511135713648

6.腾讯云开启

image-20240511135640831

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 成功发送和接受消息

image-20240511142633815

2.http://ip:15672 在控制台可以进行监控

image-20240511143128879

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

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

相关文章

【R语言与统计】SEM结构方程、生物群落、多元统计分析、回归及混合效应模型、贝叶斯、极值统计学、meta分析、copula、分位数回归、文献计量学

统计模型的七大类&#xff1a;一&#xff1a;多元回归 在研究变量之间的相互影响关系模型时候&#xff0c;用到这类方法&#xff0c;具体地说&#xff1a;其可以定量地描述某一现象和某些因素之间的函数关系&#xff0c;将各变量的已知值带入回归方程可以求出因变量的估计值&…

P8803 [蓝桥杯 2022 国 B] 费用报销

P8803 [蓝桥杯 2022 国 B] 费用报销 分析 最值问题——DP 题意分析&#xff1a;从N张票据中选&#xff0c;且总价值不超过M的票据的最大价值&#xff08;背包问题&#xff09; K天限制 一、处理K天限制&#xff1a; 1.对于输入的是月 日的格式&#xff0c;很常用的方式是…

笨方法自学python(二)-注释

注释和#号 程序里的注释是很重要的。它们可以用自然语言告诉你某段代码的功能是什么。在你想要临时移除一段代码时&#xff0c;你还可以用注解的方式将这段代码临时禁用。 # A comment, this is so you can read your program later. # Anything after the # is ignored by py…

SpringBoot自定义初始化sql文件 支持多类型数据库

我在resources目录下有init.sql初始化sql语句 指定sql文件的地址 sql内容如下&#xff1a; /*角色表*/ INSERT INTO #{schema}ccc_base_role (id, create_time, create_user_id, is_delete, role_name, status, update_time, update_user_id) VALUES(b89e30d81acb88448d412…

phpmyadmin配置文件权限错误

错误信息 配置文件权限错误,不应任何用户都能修改! 解决办法 找到phpmyadmin所在目录 给phpmyadmin目录授权755 chmod -R 755 phpmyadmin验证服务是否可以正常访问

履带车配置 一些小细节

履带车配置 一些小细节 485/CAN模式 自动识别上电后第一帧是485还是CAN指令&#xff0c;就进入对应通讯模式用485通讯这个驱动器通讯可以了&#xff0c;你再接CAN通讯&#xff0c;这个驱动器必须断电重启一下&#xff1b;不能在通电模式下切换 驱动器拨码开关 两个驱动器的…

PCIE协议-1

1. PCIe结构拓扑 一个结构由点对点的链路组成&#xff0c;这些链路将一组组件互相连接 - 图1-2展示了一个结构拓扑示例。该图展示了一个称为层级结构的单一结构实例&#xff0c;由一个根复合体&#xff08;Root Complex, RC&#xff09;、多个端点&#xff08;I/O设备&#xf…

增加表空间的数据文件

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 表空间创建完成后&#xff0c;后期还可以为表空间增加数据文件&#xff0c;以扩大数据的存储空间。增加表空间数据文件的基本语法结构如下所示。 ALTER TABLESPACE 表空间名…

【免费】在线识别通用验证码接口

模块优势价格5元1000次&#xff0c;每天免费100次api文档支持 使用量小的完全够用了 <?phpfunction Post_base64($base64_str){$url http://api.95man.com:8888/api/Http/Recog?Taken41******QK&imgtype1&len0 ; $fields array( ImgBase64>$base64_str); $ch…

day3_prefixSum

一、前缀和技巧 重点 前缀和技巧适用于快速、频繁地计算一个索引区间内的元素之和 个人理解&#xff1b;预计算&#xff0c;空间换时间 1.(一维数组的前缀和)303区域和检索-数组不可变 获取闭区间值 [left,right] -> preSum[right 1] - preSum[left],其中preSum[right…

[Vision Board创客营]--使用openmv识别阿尼亚

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

卷积特征图与感受野

特征图尺寸和感受野是卷积神经网络中非常重要的两个概念&#xff0c;今天来看一下&#xff0c;如何计算特征尺寸和感受野。 特征图尺寸 卷积特征图&#xff0c;是图片经过卷积核处理之后的尺寸。计算输出特征的尺寸&#xff0c;需要给出卷积核的相关参数包括&#xff1a; 输…