rabbitmq客户端如何关闭链接(RabbitMQ安装及简单操作)
rabbitmq客户端如何关闭链接(RabbitMQ安装及简单操作)1.下载安装三、二进制包安装二、说明安装RabbitMQ server需要Erlang语言环境,请参考https://www.toutiao.com/i6950544298114859527/,本文中不再赘述安装配置步骤。本文介绍在CentOS7.8 x64(测试服务器IP:192.168.168.100)系统下,使用二进制包及源码包编译安装最新(截止2021年4月14日)版本,版本号为3.8.14。
一、概述
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。它可以用于大型软件系统各个模块之间的高效通信,支持高并发,支持可扩展。最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
官网:https://www.rabbitmq.com
下载:https://github.com/rabbitmq/rabbitmq-server/releases/
二、说明
安装RabbitMQ server需要Erlang语言环境,请参考https://www.toutiao.com/i6950544298114859527/,本文中不再赘述安装配置步骤。
本文介绍在CentOS7.8 x64(测试服务器IP:192.168.168.100)系统下,使用二进制包及源码包编译安装最新(截止2021年4月14日)版本,版本号为3.8.14。
三、二进制包安装
1.下载安装
cd /data/tools
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.14/rabbitmq-server-generic-unix-3.8.14.tar.xz
tar xf rabbitmq-server-generic-unix-3.8.14.tar.xz
mv rabbitmq_server-3.8.14 /usr/local/
cd /usr/local
chown -R root.root rabbitmq_server-3.8.14
ln -sf rabbitmq_server-3.8.14 rabbitmq
2.环境变量配置
vi /etc/profile
//末尾添加如下内容
######SET RabbitMQ Environment
export PATH=$PATH:/usr/local/rabbitmq/sbin
//生效环境变量
source /etc/profile
四、源码包编译安装
1.依赖安装
①基础依赖
yum -y install git libxslt libxslt-devel rsync xmlto zip unzip
②动态的功能语言elixir
官网:https://elixir-lang.org/
Github仓库地址:https://github.com/elixir-lang/elixir
cd /data/tools
git clone -b v1.11.4 https://github.com/elixir-lang/elixir.git
cd elixir
make clean test
make install
2.下载编译安装
cd /data/tools
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.14/rabbitmq-server-3.8.14.tar.xz
tar xf rabbitmq-server-3.8.14.tar.xz
cd rabbitmq-server-3.8.14
## 使用make && make install进行编译安装,RabbitMQ会安装到 /usr/local/lib/erlang/lib/rabbitmq_server-x.x.x/,试着修改编译时的参数,都不能达到改变安装目录,最后找到下面方法
## 找到源文件目录下的Makefile文件
vi Makefile
//修改如下配置项
PREFIX ?= /usr/local
WINDOWS_PREFIX ?= rabbitmq-server-windows-$(PROJECT_VERSION)
MANDIR ?= $(PREFIX)/share/man
RMQ_ROOTDIR ?= $(PREFIX)/lib/erlang
RMQ_BINDIR ?= $(RMQ_ROOTDIR)/bin
RMQ_LIBDIR ?= $(RMQ_ROOTDIR)/lib
RMQ_ERLAPP_DIR ?= $(RMQ_LIBDIR)/rabbitmq_server-$(PROJECT_VERSION)
RMQ_autocomplete_DIR ?= $(RMQ_ROOTDIR)/autocomplete
将以上配置项的内容修改为如下内容
PREFIX ?= /usr/local/rabbitmq-3.8.14
WINDOWS_PREFIX ?= rabbitmq-server-windows-$(PROJECT_VERSION)
MANDIR ?= $(PREFIX)/share/man
RMQ_ROOTDIR ?= $(PREFIX)
RMQ_BINDIR ?= $(RMQ_ROOTDIR)/sbin
RMQ_LIBDIR ?= $(RMQ_ROOTDIR)
RMQ_ERLAPP_DIR ?= $(RMQ_LIBDIR)
RMQ_AUTOCOMPLETE_DIR ?= $(RMQ_ROOTDIR)/autocomplete
//再执行编译安装命令
make
make install
cd /usr/local/
## 创建软连接,方便管理
ln -sf rabbitmq-3.8.14 rabbitmq
3.环境变量配置
vi /etc/profile
//末尾添加如下内容
######SET RabbitMQ Environment
export PATH=$PATH:/usr/local/rabbitmq/sbin
//生效环境变量
source /etc/profile
五、服务管理说明
cd /usr/local/rabbitmq/sbin
启动:
./rabbitmq-server -detached
//参数 -detached 表示后台启动
./rabbitmq-server start &
./rabbitmq-server &
关闭:./rabbitmqctl stop
查看服务状态:./rabbitmqctl status
若已配置环境变量,则不需要进入安装目录,直接运行命令即可启动或关闭服务。
启动:
rabbitmq-server -detached
//参数 -detached 表示后台启动
rabbitmq-server start &
rabbitmq-server &
关闭:rabbitmqctl stop
查看服务状态:rabbitmqctl status
备注:启动命令后若不加参数 -detached,如使用./rabbitmq-server 或 ./rabbitmq-server start 或 rabbitmq-server 或rabbitmq-server start,会一直显示着启动信息,无法正常退出到命令操作界面,需强制退出当前终端,这样也会关闭rabbitmq服务。
默认监听端口:5672、25672
配置开机启动:echo '/usr/local/rabbitmq/sbin/rabbitmq-server &' >> /etc/rc.local
六、插件安装
本文只介绍WEB插件及延时队列的安装步骤,其他插件的安装亦可参考这两个来完成安装。
1.WEB管理
①安装
mkdir -p /etc/rabbitmq
//此目录必须手动创建,且不能改成别的路径和目录名
rabbitmq-plugins enable rabbitmq_management
重启RabbitMQ服务
查看启动是否成功: netstat -tunlp | grep beam
可以看到启动成功: 15672是rabbimq网页管理监听端口,5672是客户端使用的端口。management UI是static HTML页面,其通过Javascript查询HTTP API得到实时数据。实质上Web UI最终也是调用的Management command line tool。
②添加账号并配置管理权限
访问http://ip:15672/,此时默认帐号guest/guest无法登录访问,因为默认的guest账号只能在本地机器访问, 如果想在其它机器访问必须配置其它账号。
## 添加帐号
rabbitmqctl add_user admin 123456
## 赋予管理员权限
rabbitmqctl set_user_tags admin administrator
## 添加权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
说明:添加帐号命令执行完成的提示是提醒要给帐号授权。
③访问WEB页面
地址栏输入:http://ip:15672/,本文为http://192.168.168.100:15672
注:服务器防火墙开启的状态下需要放开端口,或者关闭防火墙。
## 输入账号admin,密码123456,登录
## 登录后,可查看到相关的基础信息
④删除guest账户
rabbitmqctl delete_user guest
2.延时消息队列
cd /usr/local/rabbitmq/plugins
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.8.9/rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
重启RabbitMQ服务
3.查看已启用的插件
rabbitmq-plugins list
七、常用功能命令说明
RabbitMQ服务器的主要通过rabbitmqctl和rabbimq-plugins两个工具来管理,以下是一些常用功能。
1.服务器启动与关闭
启动:rabbitmq-server –detached
关闭:rabbitmqctl stop
若单机有多个实例,则在rabbitmqctl后加 –n 指定名称
2.插件管理
开启某个插件:rabbitmq-plugins enable xxx
关闭某个插件:rabbitmq-plugins disable xxx
查看已经安装的插件:rabbitmq-plugins list
注意:重启服务器后生效。
启用监控插件:./rabbitmq-plugins enable rabbitmq_management
关闭监控插件:./rabbitmq-plugins disable rabbitmq_management
3.virtual_host管理
新建virtual_host:rabbitmqctl add_vhost xxx
撤销virtual_host:rabbitmqctl delete_vhost xxx
4.用户管理
新建用户:rabbitmqctl add_user {username} {password}
删除用户:rabbitmqctl delete_user {username}
改密码:rabbimqctl change_password {username} {newpassword}
设置用户角色:rabbitmqctl set_user_tags {username} {tag ...}
Tag可以为 administrator monitoring management
查看当前用户列表:rabbitmqctl list_users
赋予超级管理员权限:rabbitmqctl set_user_tags newuser administrator
5. 权限管理
权限设置:set_permissions [-pvhostpath] {user} {conf} {write} {read}
参数说明:
Vhostpath: Vhost路径
user: 用户名
Conf: 一个正则表达式match哪些配置资源能够被该用户访问。
Write: 一个正则表达式match哪些配置资源能够被该用户读。
Read:一个正则表达式match哪些配置资源能够被该用户访问。
6. 获取服务器状态信息
服务器状态:rabbitmqctl status
队列信息:rabbitmqctl list_queues[-p vhostpath] [queueinfoitem ...]
Queueinfoitem可以为:name,durable,auto_delete,arguments,messages_ready,
messages_unacknowledged,messages,consumers,memory
Exchange信息:rabbitmqctl list_exchanges[-p vhostpath] [exchangeinfoitem ...]
Exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments.
Binding信息:rabbitmqctllist_bindings[-p vhostpath] [bindinginfoitem ...]
Bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments
Connection信息:rabbitmqctllist_connections [connectioninfoitem ...]
Connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等。
Channel信息:rabbitmqctl list_channels[channelinfoitem ...]
Channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked