RabbitMQ常用命令,RabbitMQ入门学习1

2019-11-01 15:32 来源:未知

RabbitMQ常用命令

1,简单介绍与服务安装

rabbitmqctl命令

1.1,背景

在分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多.
那么,消息中间件性能究竟哪家强?
带着这个疑问,我们中间件测试组对常见的三类消息产品(Kafka、RabbitMQ、RocketMQ)做了性能比较。

1). 服务器启动与关闭
启动: rabbitmq-server –detached
关闭:rabbitmqctl stop
若单机有多个实例,则在rabbitmqctlh后加–n 指定名称

1.2,三大常用消息中间件

  • Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache定级项目。Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业务。
  • RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。
  • RocketMQ是阿里开源的消息中间件,它是纯Java开发,具有高吞吐量、高可用性、适合大规模分布式系统应用的特点。RocketMQ思路起源于Kafka,但并不是Kafka的一个Copy,它对消息的可靠传输及事务性做了优化,目前在阿里集团被广泛应用于交易、充值、流计算、消息推送、日志流式处理、binglog分发等场景。

2). 插件管理
开启某个插件:rabbitmq-pluginsenable xxx
关闭某个插件:rabbitmq-pluginsdisablexxx
注意:重启服务器后生效。

1.3,三大常用消息中间件的对比结果

在同步发送场景中,三个消息中间件的表现区分明显:

  • Kafka的吞吐量高达17.3w/s,不愧是高吞吐量消息中间件的行业老大。这主要取决于它的队列模式保证了写磁盘的过程是线性IO。此时broker磁盘IO已达瓶颈。
  • RocketMQ也表现不俗,吞吐量在11.6w/s,磁盘IO %util已接近100%。RocketMQ的消息写入内存后即返回ack,由单独的线程专门做刷盘的操作,所有的消息均是顺序写文件。
  • RabbitMQ的吞吐量5.95w/s,CPU资源消耗较高。它支持AMQP协议,实现非常重量级,为了保证消息的可靠性在吞吐量上做了取舍。我们还做了RabbitMQ在消息持久化场景下的性能测试,吞吐量在2.6w/s左右。

3).virtual_host管理
新建virtual_host: rabbitmqctladd_vhost xxx
撤销virtual_host:rabbitmqctl delete_vhost xxx

1.4,三大常用消息中间件的测试结论

在服务端处理同步发送的性能上,Kafka>RocketMQ>RabbitMQ。

4). 用户管理
新建用户:rabbitmqctl add_user xxxpwd
删除用户: rabbitmqctl delete_user xxx
改密码: rabbimqctlchange_password {username} {newpassword}
设置用户角色:rabbitmqctlset_user_tags {username} {tag ...}
Tag可以为 administrator,monitoring, management

1.5,安装

  • Ubuntu环境下安装RabbitMQ
    apt-get install rabbitmq-server

  • 备注:以上对比分析,摘自阿里中间件团队
    Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能
    http://jm.taobao.org/2016/04/01/kafka-vs-rabbitmq-vs-rocketmq-message-send-performance/

5). 权限管理
权限设置:set_permissions [-pvhostpath] {user} {conf} {write} {read}
Vhostpath
Vhost路径
user
用户名
Conf
一个正则表达式match哪些配置资源能够被该用户访问。
Write
一个正则表达式match哪些配置资源能够被该用户读。
Read
一个正则表达式match哪些配置资源能够被该用户访问。

2, 服务的启动与关闭

  • 服务的启动与关闭
    service rabbitmq-server stop/start/status/restart
  • 启动服务
    rabbitmq-server –detached
  • 关闭服务
    rabbitmqctl stop

6). 获取服务器状态信息
服务器状态:rabbitmqctl status
队列信息:rabbitmqctl list_queues[-p vhostpath] [queueinfoitem ...]
Queueinfoitem可以为:name,durable,auto_delete,arguments,messages_ready,messages_unacknowledged,messages,consumers,memory
Exchange信息:rabbitmqctllist_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

3,服务的状态查看

  • 查看rabbitmq-server的状态
    rabbitmqctl status

  • 队列信息,Queueinfoitem可以为:name, durable,auto_delete,arguments,messages_ready,messages_unacknowledged,messages,consumers,memory
    rabbitmqctl list_queues [-p vhostpath] [queueinfoitem ...]

  • Exchange信息,Exchangeinfoitem有:name ,type,durable,auto_delete,internal,arguments
    rabbitmqctl list_exchanges [-p vhostpath][exchangeinfoitem ...]

  • Binding信息,Bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments
    rabbitmqctl list_bindings [-p vhostpath][bindinginfoitem ...]

  • Connection信息,Connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等
    rabbitmqctl list_connections [connectioninfoitem ...]

  • Channel信息,Channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked
    rabbitmqctl list_channels [channelinfoitem ...]

rabbimq-plugins

4,Web管理工具

rabbitmqctl是rabbitmq自带的一个cli式的管理命令。尽管挺好用的,但是不够直观。
rabbitmq还自带了一个web管理工具rabbitmq_management,默认没有开启,需要手动开启。

rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart

用浏览器打开
默认账号guest,密码guest

图片 1

rabbitmq web page

系统命令
卸载

5,高级配置管理

#rpm -qa|grep rabbitmq

5.1,插件管理

  • 开启某个插件
    rabbitmq-plugins enable xxx
  • 关闭某个插件
    rabbitmq-plugins disable xxx
  • 注意:重启服务器后生效。

rabbitmq-server-3.6.1-1.noarch

5.2,virtual_host管理

  • 新建virtual_host
    rabbitmqctl add_vhost xxx
  • 撤销virtual_host
    rabbitmqctl delete_vhost xxx

#rpm -e --nodeps rabbitmq-server-3.6.1-1.noarch

5.3,用户管理

  • 新建用户
    rabbitmqctl add_user xxx pwd
  • 删除用户
    rabbitmqctl delete_user xxx
  • 改密码
    rabbimqctl change_password {username} {newpassword}
  • 设置用户角色,Tag可以为administrator, monitoring, management
    rabbitmqctl set_user_tags {username} {tag ...}

#rpm -qa|grep erlang

5.4,权限管理

  • 权限设置
    set_permissions [-p vhostpath] {user} {conf} {write} {read}
    ** Vhostpath Vhost路径
    ** user 用户名
    ** Conf 一个正则表达式match哪些配置资源能够被该用户访问。
    ** Write 一个正则表达式match哪些配置资源能够被该用户读。
    ** Read 一个正则表达式match哪些配置资源能够被该用户访问。

esl-erlang-18.3-1.x86_64

6,参考页面

  • rabbitmq安装、配置与管理
    http://blog.csdn.net/huoyunshen88/article/details/33738393

  • rabbitmqctl manual page
    http://www.rabbitmq.com/man/rabbitmqctl.1.man.html

  • 高可用笔记(4)rabbitmq
    https://yq.aliyun.com/articles/68656

#rpm -e --nodeps esl-erlang-18.3-1.x86_64

 服务

#service rabbitmq-server start --后台方式运行

#service rabbitmq-server stop  --停止运行

#service rabbitmq-server status --查看状态

插件安装  

进入插件安装目录{rabbitmq-server}/plugins/(可以查看一下当前已存在的插件)

cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.2/plugins

下载需要的插件(插件下载页面

如下载插件rabbitmq_delayed_message_exchange

wget

(如果下载的文件名称不规则就手动重命名一下如:rabbitmq_delayed_message_exchange-0.0.1.ez)

启用插件

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

CentOS 5.6 安装RabbitMQ http://www.linuxidc.com/Linux/2013-02/79508.htm

RabbitMQ客户端C++安装详细记录 http://www.linuxidc.com/Linux/2012-02/53521.htm

用Python尝试RabbitMQ http://www.linuxidc.com/Linux/2011-12/50653.htm

RabbitMQ集群环境生产实例部署 http://www.linuxidc.com/Linux/2012-10/72720.htm

Ubuntu下PHP + RabbitMQ使用 http://www.linuxidc.com/Linux/2010-07/27309.htm

在CentOS上安装RabbitMQ流程 http://www.linuxidc.com/Linux/2011-12/49610.htm

RabbitMQ概念及环境搭建 http://www.linuxidc.com/Linux/2014-12/110449.htm

RabbitMQ入门教程  http://www.linuxidc.com/Linux/2015-02/113983.htm

RabbitMQ 的详细介绍:请点这里
RabbitMQ 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-10/136493.htm

图片 2

TAG标签:
版权声明:本文由990888藏宝阁发布于网络应用,转载请注明出处:RabbitMQ常用命令,RabbitMQ入门学习1