RabbitMQ消息队列

一,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   //函数库

函数库的包的位置

链接: 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间icon-default.png?t=N7T8https://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

 

 

 

 

 

 

 

 

 

 

 

 

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值