简单架构
image.png消息流转图
image.pngRabbitMQ安装和使用
官网地址:https://www.rabbitmq.com/
Erlang和RabbitMQ版本对照表:https://www.rabbitmq.com/which-erlang.html
相关软件包和资料:链接:https://pan.baidu.com/s/1uFP2YU7xPK2KBkaP4gXvLw 提取码:s6z8
安装Rabbitmq
# 1、将需要的安装包下载到Linux系统
erlang-18.3-1.el7.centos.x86_64.rpm # Erlang语言安装包
rabbitmq-server-3.6.5-1.noarch.rpm # RabbitMQ安装包
socat-1.7.3.2-1.1.el7.x86_64.rpm # 秘钥
# 2、安装Erlang环境
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
# 3、安装socat
rpm -ivh socat-1.7.3.2-1.1.el7.x86_64.rpm
# 4、安装RabbitMQ
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
# 5、RabbitMQ配置文件的修改
路径: vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app # rabbit.app是json格式的配置文件
42 {loopback_users, [guest]}, # 修改42行 去掉guest两边的引号和尖括号,最后结果和左边代码保持一致
Rabbitmq服务的启动和停止
# 1、查看Rabbitmq可以使用的命令
[root@centos-7-test1 ~]# rabbitmq
rabbitmqctl rabbitmq-plugins rabbitmq-server
# 2、启动Rabbitmq服务
rabbitmq-server start & # & 代表后台启动服务
# 启动RabbitMQ服务
[root@centos-7-test1 ~]# rabbitmq-server start &
[1] 3293
[root@centos-7-test1 ~]#
RabbitMQ 3.6.5\. Copyright (C) 2007-2016 Pivotal Software, Inc.
## ## Licensed under the MPL. See http://www.rabbitmq.com/
## ##
########## Logs: /var/log/rabbitmq/rabbit@centos-7-test1.log
###### ## /var/log/rabbitmq/rabbit@centos-7-test1-sasl.log
##########
Starting broker...
completed with 0 plugins.
# 3、查看Rabbitmq是否启动成功? 看到下面的结果就证明RabbitMQ启动成功了!
[root@centos-7-test1 ~]# lsof -i:5672
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
beam.smp 2586 rabbitmq 52u IPv6 36396 0t0 TCP *:amqp (LISTEN)
# 4、Rabbitmq服务的停止
rabbitmqctl stop_app
# 5、安装Rabbitmq管理插件,可以通过浏览器控制台访问
rabbitmq-plugins list # 可以查看Rabbitmq提供的插件
rabbitmq-plugins enable rabbitmq_management # 安装Rabbitmq控制台插件 控制台默认端口是15672
# 6、浏览器访问Rabbitmq控制台 默认用户名和密码都是guest
http://192.168.110.133:15672
命令行和管控台
基础操作
# 1、启动应用
rabbitmqctl start_app
# 2、关闭应用
rabbitmqctl stop_app
# 3、节点状态
rabbitmqctl status
# 4、添加用户
rabbitmqctl add_user [username] [password]
# 4、列出所有的用户列表
rabbitmqctl list_users
# 5、删除用户
rabbitmqctl delete_user [username]
# 6、清除用户权限
rabbitmqctl clear_permissions -p [vhostpath] [username]
# 7、列出用户权限
rabbitmqctl list_user_permissions [username]
# 8、修改密码
rabbitmqctl change_password [username] [newpassword]
# 9、设置用户权限
rabbitmqctl set_permissions -p [vhostpath] [username] ".*" ".*" ".*"
# 10、创建虚拟主机
rabbitmqctl add_vhost [vhostpath]
# 11、列出所有的虚拟主机
rabbitmqctl list_vhosts
# 12、列出虚拟主机上所有权限
rabbitmqctl list_permissions -p [vhostpath]
# 13、删除虚拟主机
rabbitmqctl delete_vhost [vhostpath]
# 14、查看所有队列消息
rabbitmqctl list_queues
# 15、清除队列里的消息
rabbitmqctl -p [vhostpath] purge_queue blue
登录MQ管理界面
开启管理界面后,guest只允许本地登录的,要想远程,就要创建新角色。不违背MQ设计初衷
rabbitmqctl add_user admin aidt123456
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin "." "." ".*"
相关帖子:https://www.jianshu.com/p/e3af4cf97820
管理界面简介
image.png创建Virtual Hosts = 创建账户
像mysql有数据库的概念并且可以指定用户对库和表等操作的权限。
那RabbitMQ呢?RabbitMQ也有类似的权限管理。
在RabbitMQ中可以虚拟消息服务器VirtualHost,每个VirtualHost相当一个相对独立的RabbitMQ服务器,每个VirtualHost之间是相互隔离的。
exchange、queue、message不能互通。
在RabbitMQ中无法通过AMQP创建VirtualHost,可以通过以下命令来创建。
rabbitmqctl add_vhost [vhostname]
当然也可以通过WEB管理插件来创建。
image.png image.png配置用户操作host权限
image.png image.png交换机
image.png队列界面
Ready代表消费者还可以读到的条数,Unacked:代表还有多少条没有被应答
image.png
网友评论