RabbitMQ

RabbitMQ是由LShift提供的一个Advanced Message Queuing Protocol(AMQP)的开源实现,由以高性能、健壮以及可伸缩性出名的Erlang写成,因此也继承了这些优点
很成熟,久经考验,应用广泛
文档详细,客户端丰富,几乎常用语言都有RabbitMQ的开发库

安装

http://www.rabbitmq.com/install-rpm.html
选择RPM包下载,选择对应平台,本次安装在CentOS 7,其它平台类似。
由于使用了erlang语言开发,所以需要erlang的包。erlang和RabbitMQ的兼容性,参考:https://www.rabbitmq.com/which-erlang.html#compatibility-matrix
下载 rabbitmq-server-3.7.16-1.el7.noarch.rpm、erlang-21.3.8.6-1.el7.x86_64.rpm。socat在CentOS中源中有。

# yum install erlang-21.3.8.6-1.el7.x86_64.rpm rabbitmq-server-3.7.16-1.el7.noarch.rpm
rpm -ql rabbitmq-server
配置

http://www.rabbitmq.com/configure.html#config-location
环境变量
使用系统环境变量,如果没有使用rabbitmq-env.conf中定义环境变量,否则使用缺省值
RABBITMQ_NODE_IP_ADDRESS the empty string, meaning that it should bind to all network interfaces.
RABBITMQ_NODE_PORT 5672
RABBITMQ_DIST_PORT RABBITMQ_NODE_PORT + 20000 内部节点和客户端工具通信用
RABBITMQ_CONFIG_FILE 配置文件路径默认为/etc/rabbitmq/rabbitmq
环境变量文件,可以不配置
工作特性配置文件
rabbitmq.config配置文件
3.7支持新旧两种配置文件格式
1、erlang配置文件格式,为了兼容继续采用
在这里插入图片描述
2、sysctl格式,如果不需要兼容,RabbitMQ鼓励使用
在这里插入图片描述
这个文件也可以不配置

插件管理

列出所有可用插件

# rabbitmq-plugins list

在这里插入图片描述
启动WEB管理插件,会依赖启用其他几个插件

在这里插入图片描述

启动服务
systemctl start rabbitmq-server

启动中,可能出现以下的错误
Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
就是这个文件的权限问题,修改属主、属组为rabbitmq即可

chown rabbitmq.rabbitmq /var/lib/rabbitmq/.erlang.cookie: eacces

服务启动成功
在这里插入图片描述

用户管理

开始登陆WEB页面,http://yourip:15672
在这里插入图片描述
使用guest/guest只能本地登陆,远程登陆会报错
rabbitmqctl

Usage

rabbitmqctl [--node <node>] [--timeout <timeout>] [--longnames] [--quiet] <command> [<command options>]
Users:

   add_user                      Creates a new user in the internal database
   authenticate_user             Attempts to authenticate a user. Exits with a non-zero code if authentication fails.
   change_password               Changes the user password
   clear_password                Clears (resets) password and disables password login for a user
   delete_user                   Removes a user from the internal database. Has no effect on users provided by external backends such as LDAP
   list_users                    List user names and tags
   set_user_tags                 Sets user tags

添加用户:

rabbitmqctl add_user username password

删除用户:

rabbitmqctl delete_user username

更改密码

rabbitmqctl change_password username newpassword

设置权限Tags,其实就是分配组

rabbitmqctl set_user_tags username tag

设置xiaobai用户成为管理员tag后管理

[root@localhost ~]# rabbitmqctl add_user xiaobai xiaobai
Adding user "xiaobai" ...
[root@localhost ~]# rabbitmqctl list_users
Listing users ...
user	tags
xiaobai	[]
guest	[administrator]
[root@localhost ~]# rabbitmqctl set_user_tags xiaobai administrator
Setting tags for user "xiaobai" to [administrator] ...
[root@localhost ~]# rabbitmqctl list_users
Listing users ...
user	tags
xiaobai	[administrator]
guest	[administrator]

tag的意义如下
administrator可以管理用户、权限、虚拟主机
在这里插入图片描述

基本信息

在这里插入图片描述

虚拟主机

在这里插入图片描述
/为缺省虚拟主机
在这里插入图片描述
缺省虚拟主机,默认只能是guest用户在本机连接。上图新建的用户wayne默认无法访问任何虚拟主机。

Pika库

Pika是纯Python实现的支持AMQP协议的库

pip install pika
RabbitMQ工作原理及应用

工作模式
https://www.rabbitmq.com/getstarted.html
在这里插入图片描述
在这里插入图片描述
1、队列
这种模式就是最简单的生产者消费者模型,消息队列就是一个FIFO的队列
在这里插入图片描述
生产者send.py消费者receive.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值