既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
16、#对本地节点执行更广泛的运行状况检查
sudo rabbitmq-diagnostics node_health_check
17 、#开启/关闭某个插件,需重启生效
rabbitmq-plugins enable/disable xxx
18、#查看所有队列信息
rabbitmqctl list_queues
19、#关闭应用
rabbitmqctl stop_app
19、#启动应用
rabbitmqctl start_app
20、#清除所有队列
rabbitmqctl reset
#访问管理页面,默认为端口15672
http://IP:15672 、
## 端口用途
**4369**
empd(Erlang Port Mapper Daemon),是 Erlang 的端口/结点名称映射程序,用来跟踪节点名称监听地址,在集群中起到一个类似 DNS 的作用;
5672、5671
由 AMQP 0-9-1 和 1.0 客户端使用;
**15672**
HTTP\_API 端口,管理员用户才能访问,用于管理 RbbitMQ,需要启用 management 插件, rabbitmq-plugins enable rabbitmq\_management ,访问 http://server-name:15672/;
**25672**
Erlang distribution,和4369配合;
**61613、61614**
当STOMP插件启用的时候打开,作为STOMP客户端端口(根据是否使用TLS选择);
**1883、8883**
当MQTT插件启用的时候打开,作为MQTT客户端端口(根据是否使用TLS选择);
**15674**
基于WebSocket的STOMP客户端端口(当插件Web STOMP启用的时候打开);
**15675**
基于WebSocket的MQTT客户端端口(当插件Web MQTT启用的时候打开);
## 2、rpm安装RabbitMQ
**1. 更新基本系统**
安装任何软件包之前,建议使用以下命令更新软件包和存储库
yum -y update
**2. 安装Erlang**
由于RabbitMQ是基于Erlang(面向高并发的语言)语言开发,所以在安装RabbitMQ之前,需要先安装Erlang。在本教程中我们将安装最新版本的Erlang到服务器中。Erlang在默认的YUM存储库中不可用,因此您将需要安装EPEL存储库。运行以下命令相同。
yum -y install epel-release
安装Erlang
yum -y install erlang socat
您现在可以使用以下命令检查Erlang版本。
[root@liptan-pc ~]# erl -version
Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4
**2. 安装RabbitMQ**
RabbitMQ为预编译并可以直接安装的企业Linux系统提供RPM软件包。唯一需要的依赖是将Erlang安装到系统中。我们已经安装了Erlang,我们可以进一步下载RabbitMQ。通过运行下载Erlang RPM软件包。
2.1 下载RabbitMQ
下载RabbitMQ
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
如果你没有安装wget ,可以运行yum -y install wget 。您可以随时找到最新版本的RabbitMQ下载页面的链接。
**2.2 安装RabbitMQ**
通过运行导入GPG密钥:
rpm –import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820141447791.png#pic_center)
运行RPM安装RPM包:
rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820141502555.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70#pic_center)
RabbitMQ现已经安装在系统上。
**3. 使用RabbitMQ**
运行
systemctl start rabbitmq-server
开机自启
systemctl enable rabbitmq-server
检查状态
systemctl status rabbitmq-server
**4. 访问Web控制台4.1 启动web控制台**
启动RabbitMQ Web管理控制台,方法是运行:
rabbitmq-plugins enable rabbitmq_management
通过运行以下命令,将RabbitMQ文件的所有权提供给RabbitMQ用户:
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
4.2 创建用户
现在,您将需要为RabbitMQ Web管理控制台创建管理用户。运行以下命令相同。
rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin “.*” “.*” “.*”
将管理员更改为管理员用户的首选用户名。确保将StrongPassword更改为非常强大的密码。
要访问RabbitMQ的管理面板,请使用您最喜爱的Web浏览器并打开以下URL。
http://Your_Server_IP:15672/
**5.管理界面介绍**
第一次访问需要登录,默认的账号密码为:guest/guest
5.1.主页
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820141303479.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70#pic_center)
connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。Exchanges:交换机,用来实现消息的路由Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列。
端口:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820141314595.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70#pic_center)
5.2.添加用户
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820141323964.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70#pic_center)
上面的Tags选项,其实是指定用户的角色,可选的有以下几个:
超级管理员(administrator)
可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
监控者(monitoring)
可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
策略制定者(policymaker)
可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
普通管理者(management)
仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
**5.3.创建虚拟主机(Virtual Hosts)**
为了让各个用户可以互不干扰的工作,RabbitMQ添加了虚拟主机(Virtual Hosts)的概念。其实就是一个独立的访问路径,不同用户使用不同路径,各自有自己的队列、交换机,互相不会影响。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820141358625.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70#pic_center)
创建好虚拟主机,我们还要给用户添加访问权限:
点击添加好的虚拟主机:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820141410289.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70#pic_center)
进入虚拟主机设置界面:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820141421319.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70#pic_center)
## 3、
1、下载安装包,建立activemq用户,安装#
cd /opt/
wget http://apache.dataguru.cn/activemq/apache-activemq/5.7.0/apache-activemq-5.7.0-bin.tar.gz
wget http://apache.dataguru.cn/activemq/apache-activemq/5.9.0/apache-activemq-5.9.0-bin.tar.gz
adduser activemq
tar xvzf apache-activemq-5.7.0.tar.gz
ln -s apache-activemq-5.7.0 activemq
chown -R activemq.activemq apache-activemq-5.7.0
ln -sf /opt/activemq/bin/activemq /etc/init.d/
update-rc.d activemq defaults
2. 生成并编辑配置文件 #
/etc/init.d/activemq setup /etc/default/activemq
chmod 600 /etc/default/activemq
chown activemq. /etc/default/activemq
mkdir /var/xxxx
vim /etc/default/activemq
add ACTIVEMQ_DATA=“/var/xxxx” #the 7 line
add ACTIVEMQ_USER=“activemq” #the 51 line
修改/etc/security/limits.conf文件,添加如下内容。
activemq - nofile 32768
activemq soft nproc 32000
activemq hard nproc 32000
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020090110323429.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70#pic_center)
3.JMX配置#
vim /etc/default/activemq
cancel note as follows
ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=11099 "
ACTIVEMQ_SUNJMX_START=“ A C T I V E M Q _ S U N J M X _ S T A R T − D c o m . s u n . m a n a g e m e n t . j m x r e m o t e . p a s s w o r d . f i l e = ACTIVEMQ\_SUNJMX\_START -Dcom.sun.management.jmxremote.password.file= ACTIVEMQ_SUNJMX_START−Dcom.sun.management.jmxremote.password.file={ACTIVEMQ_CONF}/jmx.password”
ACTIVEMQ_SUNJMX_START=“ A C T I V E M Q _ S U N J M X _ S T A R T − D c o m . s u n . m a n a g e m e n t . j m x r e m o t e . a c c e s s . f i l e = ACTIVEMQ\_SUNJMX\_START -Dcom.sun.management.jmxremote.access.file= ACTIVEMQ_SUNJMX_START−Dcom.sun.management.jmxremote.access.file={ACTIVEMQ_CONF}/jmx.access”
ACTIVEMQ_SUNJMX_START=“$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false”
ACTIVEMQ_SUNJMX_START=“$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote”
ACTIVEMQ_SUNJMX_CONTROL=“–jmxurl service:jmx:rmi:///jndi/rmi://127.0.0.1:11099/jmxrmi --jmxuser admin --jmxpassword activemq”
add note as follows
#ACTIVEMQ_SUNJMX_CONTROL=“”
Remarks modify jmxuser and jmxpassword,ensure /opt/activemq/conf/jmx.access file and /opt/activemq/conf/jmx.password file site the same.
Give jmx.* file permission as follows
chmod 600 /opt/activemq/conf/jmx.*
4.启动和停止activemq#
/etc/init.d/activemq start
/etc/init.d/activemq stop
5.访问activemq管理界面#
http://x.x.x.x:8161/
user:admin
pwd:admin
## 常见问题
1、
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: /var/log/rabbitmq/rabbit@localhost.log
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: /var/log/rabbitmq/rabbit@localhost-sasl.log
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: Stack trace:
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: [{gen,do_for_proc,2,[{file,“gen.erl”},{line,228}]},
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: {gen_event,rpc,2,[{file,“gen_event.erl”},{line,239}]},
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: {rabbit,ensure_working_log_handlers,0,
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: [{file,“src/rabbit.erl”},{line,842}]},
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: {rabbit,‘-boot/0-fun-0-’,0,[{file,“src/rabbit.erl”},{line,281}]},
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: {rabbit,start_it,1,[{file,“src/rabbit.erl”},{line,417}]},
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: {init,start_em,1,[]},
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: {init,do_boot,3,[]}]
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: =INFO REPORT==== 20-Aug-2020::14:17:30.319492 ===
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: Error description:
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: noproc
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: Log files (may contain more information):
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: /var/log/rabbitmq/rabbit@localhost.log
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: /var/log/rabbitmq/rabbit@localhost-sasl.log
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: Stack trace:
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: [{gen,do_for_proc,2,[{file,“gen.erl”},{line,228}]},
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: {gen_event,rpc,2,[{file,“gen_event.erl”},{line,239}]},
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: {rabbit,ensure_working_log_handlers,0,
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: [{file,“src/rabbit.erl”},{line,842}]},
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: {rabbit,‘-boot/0-fun-0-’,0,[{file,“src/rabbit.erl”},{line,281}]},
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: {rabbit,start_it,1,[{file,“src/rabbit.erl”},{line,417}]},
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: {init,start_em,1,[]},
8月 20 14:17:30 localhost.localdomain rabbitmq-server[141651]: {init,do_boot,3,[]}]
8月 20 14:17:31 localhost.localdomain rabbitmq-server[141651]: {“init terminating in do_boot”,noproc}
8月 20 14:17:31 localhost.localdomain rabbitmq-server[141651]: init terminating in do_boot (noproc)
8月 20 14:17:31 localhost.localdomain rabbitmq-server[141651]: [1B blob data]
8月 20 14:17:31 localhost.localdomain rabbitmq-server[141651]: Crash dump is being written to: erl_crash.dump…done
8月 20 14:17:31 localhost.localdomain systemd[1]: rabbitmq-server.service: Main process exited, code=exited, status=1/FAILURE
8月 20 14:17:31 localhost.localdomain systemd[1]: rabbitmq-server.service: Failed with result ‘exit-code’.
8月 20 14:17:31 localhost.localdomain systemd[1]: Failed to start RabbitMQ broker.
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820141843671.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200820141921544.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70#pic_center)
参考链接 :
RabbitMQ 部署记录 : https://mp.weixin.qq.com/s/YlsbisNSbKKf3-sUWfnDvw
RabbitMQ简介以及应用 :https://mp.weixin.qq.com/s/xX85bYETptp\_zzL3en\_SGQ
高可用RocketMQ集群搭建 : https://mp.weixin.qq.com/s/qWDrBnrAZ4G72DFBFEaFBQ
![img](https://img-blog.csdnimg.cn/img_convert/80076913f31901efdc72eadd67dfdd6d.png)
![img](https://img-blog.csdnimg.cn/img_convert/50432389a9e74b7ce0fb6f7de662e3b0.png)
![img](https://img-blog.csdnimg.cn/img_convert/0f190dccb76cfbf87fabfa40e4e384b8.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**
ketMQ集群搭建 : https://mp.weixin.qq.com/s/qWDrBnrAZ4G72DFBFEaFBQ
[外链图片转存中...(img-Gyqp2jHG-1715734547529)]
[外链图片转存中...(img-V1gXivPl-1715734547529)]
[外链图片转存中...(img-BHgnl1uk-1715734547530)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**