文章目录
1.基本介绍 2.Linux下安装配置RabbitMQ 1.安装erlang环境 1.将文件上传到/opt目录下 2.进入/opt目录下,然后安装
2.安装RabbitMQ
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端口
2.访问 http://ip:15672 进行登录 1.使用guest用户登录,出现权限问题 2.进入/etc/rabbitmq 编辑 rabbitmq.config 3.将下面这句话粘贴进去 4.重启MQ,使配置生效 5.再次登录,成功!
3.控制台参数解析
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.引入依赖
< 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 :
host :
username :
password : ******
virtual-host : /
port : 6783
listener :
simple :
concurrency : 10
max-concurrency : 10
prefetch : 1
auto-startup : true
default-requeue-rejected : true
template :
retry :
enabled : true
initial-interval : 1000ms
max-attempts : 3
max-interval : 10000ms
multiplier : 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 ;
@Configuration
public class RabbitMQConfig {
private static final String QUEUE = "queue" ;
@Bean
public 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 ;
@Service
@Slf4j
public class MQSender {
@Resource
private 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 ;
@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 ;
@Controller
public class RabbitMQHandler {
@Resource
private MQSender mqSender;
@RequestMapping ( "/mq" )
@ResponseBody
public void mq ( ) {
mqSender. send ( "hello rabbitmq" ) ;
}
}
4.启动测试
1.访问 http://localhost:9092/seckill/mq 成功发送和接受消息
2.http://ip:15672 在控制台可以进行监控