一,CentOS7下安装RabbitMQ(单机)
1:安装erlang
//切换阿里源下载
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum clean all4
[root@bogon ~]# yum -y install erlang
2:安装rabbtimq
[root@bogon ~]# yum -y install rabbitmq-server
[root@bogon ~]# ps aux | grep rabbit
rabbitmq 1759 2.4 4.5 618480 44184 ? Ssl 11:25 0:00 /usr/lib64/erlang/erts-5.10.4/bin/beam -W w -K true -A30 -P 1048576 -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.3.5/sbin/../ebin -noshell -noinput -s rabbit boot -sname rabbit@bogon -boot start_sasl -config /etc/rabbitmq/rabbitmq -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbi error_logger {file,"/var/log/rabbitmq/rabbit@bogon.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@bogon-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.3.5/sbin/../plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@bogon-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@bogon" -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672
rabbitmq 1774 0.0 0.1 35216 1676 ? S 11:25 0:00 /usr/lib64/erlang/erts-5.10.4/bin/epmd -daemon
rabbitmq 1831 0.0 0.2 35180 2200 ? Ss 11:25 0:00 inet_gethost 4
rabbitmq 1832 0.0 0.2 41532 2500 ? S 11:25 0:00 inet_gethost 4
root 1836 0.0 0.2 112840 2208 pts/0 S+ 11:26 0:00 grep --color=auto rabbit
[root@bogon ~]#
3:开启web管理控制台
[root@bogon ~]# rabbitmq-plugins list
[ ] amqp_client 3.3.5
[ ] cowboy 0.5.0-rmq3.3.5-git4b93c2d
[ ] eldap 3.3.5-gite309de4
[ ] mochiweb 2.7.0-rmq3.3.5-git680dba8
[ ] rabbitmq_amqp1_0 3.3.5
[ ] rabbitmq_auth_backend_ldap 3.3.5
[ ] rabbitmq_auth_mechanism_ssl 3.3.5
[ ] rabbitmq_consistent_hash_exchange 3.3.5
[ ] rabbitmq_federation 3.3.5
[ ] rabbitmq_federation_management 3.3.5
[ ] rabbitmq_management 3.3.5
[ ] rabbitmq_management_agent 3.3.5
[ ] rabbitmq_management_visualiser 3.3.5
[ ] rabbitmq_mqtt 3.3.5
[ ] rabbitmq_shovel 3.3.5
[ ] rabbitmq_shovel_management 3.3.5
[ ] rabbitmq_stomp 3.3.5
[ ] rabbitmq_test 3.3.5
[ ] rabbitmq_tracing 3.3.5
[ ] rabbitmq_web_dispatch 3.3.5
[ ] rabbitmq_web_stomp 3.3.5
[ ] rabbitmq_web_stomp_examples 3.3.5
[ ] sockjs 0.3.4-rmq3.3.5-git3132eb9
[ ] webmachine 1.10.3-rmq3.3.5-gite9359c7
[root@bogon ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management
Plugin configuration has changed. Restart RabbitMQ for changes to take effect.
[root@bogon ~]# rabbitmq-plugins list
[e] amqp_client 3.3.5
[ ] cowboy 0.5.0-rmq3.3.5-git4b93c2d
[ ] eldap 3.3.5-gite309de4
[e] mochiweb 2.7.0-rmq3.3.5-git680dba8
[ ] rabbitmq_amqp1_0 3.3.5
[ ] rabbitmq_auth_backend_ldap 3.3.5
[ ] rabbitmq_auth_mechanism_ssl 3.3.5
[ ] rabbitmq_consistent_hash_exchange 3.3.5
[ ] rabbitmq_federation 3.3.5
[ ] rabbitmq_federation_management 3.3.5
[E] rabbitmq_management 3.3.5
[e] rabbitmq_management_agent 3.3.5
[ ] rabbitmq_management_visualiser 3.3.5
[ ] rabbitmq_mqtt 3.3.5
[ ] rabbitmq_shovel 3.3.5
[ ] rabbitmq_shovel_management 3.3.5
[ ] rabbitmq_stomp 3.3.5
[ ] rabbitmq_test 3.3.5
[ ] rabbitmq_tracing 3.3.5
[e] rabbitmq_web_dispatch 3.3.5
[ ] rabbitmq_web_stomp 3.3.5
[ ] rabbitmq_web_stomp_examples 3.3.5
[ ] sockjs 0.3.4-rmq3.3.5-git3132eb9
[e] webmachine 1.10.3-rmq3.3.5-gite9359c7
[root@bogon ~]#
下面是一个将这些插件和版本信息整理成表格的形式,并解释每列的含义:
插件名称 |
版本号 |
说明 |
amqp_client |
3.3.5 |
AMQP客户端库,用于与RabbitMQ服务器进行AMQP协议通信。 |
cowboy |
0.5.0-rmq3.3.5-git4b93c2d |
一个用于Erlang的高效、轻量级的HTTP服务器和REST框架,可能在此版本中为RabbitMQ定制或扩展。 |
eldap |
3.3.5-gite309de4 |
可能是RabbitMQ用于LDAP身份验证的插件,但这里的版本表明它可能包含了对LDAP支持的自定义或额外更新。 |
mochiweb |
2.7.0-rmq3.3.5-git680dba8 |
另一个Erlang的HTTP服务器库,可能为RabbitMQ提供了Web界面的底层支持或其他Web服务功能。 |
rabbitmq_amqp1_0 |
3.3.5 |
支持AMQP 1.0协议的RabbitMQ插件,允许RabbitMQ与遵循AMQP 1.0的客户端进行通信。 |
rabbitmq_auth_backend_ldap |
3.3.5 |
提供通过LDAP服务器进行RabbitMQ用户认证的插件。 |
rabbitmq_auth_mechanism_ssl |
3.3.5 |
通过SSL/TLS支持更安全的认证机制的插件。 |
rabbitmq_consistent_hash_exchange |
3.3.5 |
实现一致性哈希交换类型的插件,可能用于改进消息分发和负载均衡。 |
rabbitmq_federation |
3.3.5 |
允许RabbitMQ集群跨网络边界安全地交换消息的插件。 |
rabbitmq_federation_management |
3.3.5 |
提供RabbitMQ Federation插件的管理和监控界面。 |
rabbitmq_management |
3.3.5 |
RabbitMQ的管理插件,提供Web界面来监控和控制RabbitMQ服务器。 |
rabbitmq_management_agent |
3.3.5 |
与rabbitmq_management插件相关的组件,可能用于管理界面与RabbitMQ服务器的交互。 |
rabbitmq_management_visualiser |
3.3.5 |
RabbitMQ管理插件的可视化工具,用于以图形方式显示RabbitMQ的内部状态。 |
rabbitmq_mqtt |
3.3.5 |
允许RabbitMQ通过MQTT协议接收和发送消息的插件。 |
rabbitmq_shovel |
3.3.5 |
用于RabbitMQ之间高效复制或迁移消息的数据迁移插件。 |
rabbitmq_shovel_management |
3.3.5 |
提供rabbitmq_shovel插件的管理和监控界面。 |
rabbitmq_stomp |
3.3.5 |
允许RabbitMQ通过STOMP协议接收和发送消息的插件。 |
rabbitmq_test |
3.3.5 |
可能是用于RabbitMQ的测试或演示的插件。 |
rabbitmq_tracing |
3.3.5 |
提供消息跟踪功能的插件,帮助调试和监控RabbitMQ中的消息流。 |
rabbitmq_web_dispatch |
3.3.5 |
可能用于RabbitMQ的Web请求路由或分发的插件。 |
rabbitmq_web_stomp |
3.3.5 |
允许通过Web Stomp协议与RabbitMQ进行通信的插件。 |
rabbitmq_web_stomp_examples |
3.3.5 |
提供rabbitmq_web_stomp插件的使用示例。 |
sockjs |
0.3.4-rmq3.3.5-git3132eb9 |
一个浏览器上的WebSocket库,支持在不支持WebSocket的旧浏览器上模拟WebSocket连接,这里可能是为RabbitMQ的Web客户端定制的。 |
webmachine |
1.10.3-rmq3.3.5-gite9359c7 |
一个Erlang库,用于构建符合REST原则的Web应用程序,这里可能是RabbitMQ管理界面或其他Web服务的底层框架。 |
4:关闭防火墙并去访问浏览器访问
[root@bogon ~]# systemctl stop firewalld
[root@bogon ~]# setenforce 0
[root@bogon ~]# systemctl restart rabbitmq-servser
注意账号是guest密码也是guest
5.:下载nginx服务
[root@bogon ~]# yum -y install nginx
6:配置nginx
[root@bogon ~]# cd /etc/nginx/
[root@bogon nginx]# cd conf.d/
[root@bogon conf.d]# vim rabbitmq.conf
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:15672;
}
}
[root@bogon conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@bogon conf.d]# nginx
注意这是有nginx做代理的可以不加端口
7:配置其他两台主机
(1)安装pythom3
[root@bogon ~]# yum -y install python3
[root@bogon ~]# pip3 install pika-1.3.1-py3-none-any.whl //函数库
函数库的包的位置
链接: 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/12Ly7dKHi5Z7gQJqqioUOuA?pwd=wn78 提取码: wn78 复制这段内容后打开百度网盘手机App,操作更方便哦
(2)测试
把脚本分别给102,103
链接: https://pan.baidu.com/s/1HyYDx8AN7iilrJvaW7a64g?pwd=w4d6 提取码: w4d6 复制这段内容后打开百度网盘手机App,操作更方便哦
[root@103 ~]# python3 send_message.sh
[root@102 ~]# python3 receive_message.sh
8.rabbit命令
类别 |
命令 |
描述 |
虚拟机管理 |
rabbitmqctl list_vhosts |
列出所有的虚拟主机 |
rabbitmqctl add_vhost |
创建新的虚拟主机 |
|
rabbitmqctl delete_vhost |
删除指定的虚拟主机 |
|
用户管理 |
rabbitmqctl list_users |
列出所有用户 |
rabbitmqctl add_user |
创建新用户 |
|
rabbitmqctl change_password |
更改用户密码 |
|
rabbitmqctl delete_user |
删除用户 |
|
rabbitmqctl clear_password |
清除用户密码(设置为无密码) |
|
角色管理 |
rabbitmqctl set_user_tags |
赋予用户特定角色 |
rabbitmqctl set_permissions -p |
设置用户对虚拟主机的权限 |
|
权限管理 |
rabbitmqctl list_user_permissions |
列出用户的权限 |
rabbitmqctl list_permissions -p |
列出指定虚拟主机下所有用户的权限 |
|
rabbitmqctl clear_permissions -p |
清除用户在指定虚拟主机上的权限 |
|
插件管理 |
rabbitmq-plugins list |
列出所有可用的插件 |
rabbitmq-plugins enable |
启用插件 |
|
rabbitmq-plugins disable |
禁用插件 |
|
限制 |
rabbitmqctl set_vhost_limits -p '{"max-connections": }' |
设置虚拟主机的最大连接数 |
rabbitmqctl set_vhost_limits -p '{"max-queues": }' |
设置虚拟主机中最大的队列数 |
|
其他 |
rabbitmqctl list_exchanges |
列出所有的交换器 |
rabbitmqctl list_bindings |
列出所有的绑定关系 |
|
rabbitmqctl list_queues |
列出所有的队列 |
|
rabbitmqctl status |
查看RabbitMQ的运行信息 |
二,集群RabbitMQ
1:实验环境
主机名 |
ip |
节点类型 |
centos01 |
192.168.10.102 |
磁盘节点 |
centos01 |
192.168.10.102 |
内存节点 |
centos01 |
192.168.10.102 |
内存节点 |
2:配置hosts以及hostname
三台机器设置hostname
hostnamectl set-hostname centos01
hostnamectl set-hostname centos02
hostnamectl set-hostname centos03
192.168.10.101 centos01
192.168.10.102 centos02
192.168.10.103 centos03
3:关闭selinux以及firewalld
setenforce 0
systemctl stop firewalld
4:安装rabbitmq
三台机器都要安装,步骤参考上面
5:启动服务
三台机器都启动起来
systemctl start rabbitmq-server
6:安装management插件
三台机器都要开启
rabbitmq-plugins enable rabbitmq_management
[root@mq1 ~]# scp /var/lib/rabbitmq/.erlang.cookie mq3:/var/lib/rabbitmq/
[root@mq1 ~]# scp /var/lib/rabbitmq/.erlang.cookie mq2:/var/lib/rabbitmq/.erlang.cookie
7:分配节点
rabbitmqctl stop_app
8:将centos02作为内存节点连接到centos01
rabbitmqctl join_cluster --ram rabbit@centos01
9:开启rabbitmq
rabbitmqctl start_app
10:查看集群状态
rabbitmqctl cluster_status