RabbitMQ OS X下安装及常用命令-1

摘要:
#brewinstallerlang2.安装rabbitMq确保系统有Erlang环境后,即可使用brew安装RabbitMQ了,安装很简单,只需如下即可:#brewupdate#brewinstallrabbitmq安装后需要将/usr/local/sbin添加到$PATH里去,我的环境下编辑~/.profile就行了。停止RabbitMQ应用并关闭节点#rabbitmqctlstop用上面方法停止RabbitMQ后,只能再通过rabbitmq-server来启动RabbitMQ服务。

RabbitMQ的主页在http://www.rabbitmq.com/

1. 安装Erlang

RabbitMQ是用Erlang编写的,所以需要先安装Erlang,如果有的话跳过这步即可(我是跳过了,系统已有)。

# brew install erlang

2. 安装rabbitMq

确保系统有Erlang环境后,即可使用brew安装RabbitMQ了,安装很简单,只需如下即可:

# brew update
# brew install rabbitmq

安装后需要将/usr/local/sbin添加到$PATH里去,我的环境下编辑~/.profile就行了。
具体的官方操作文档在这里:
http://www.rabbitmq.com/install-homebrew.html

3. 一些简单常用的命令

命令都在/usr/sbin目录下。

3.1. rabbitmq-server

rabbitmq-server用来启动RabbitMQ服务器进程:

# rabbitmq-server -detached

如果不加上面的-datached,即非守护启动方式,启动后控制台被挂起,ctrl+c信号会发给其进程,从而可以直接kill掉进程。

3.2. rabbitmqctl

rabbitmqctl 是RabbitMQ中间件的一个用来管理节点(Node)的命令行工具。它针对各个节点的实例进行各种配置和控制。

停止RabbitMQ应用并关闭节点(即同时停止rabbitmq的进程及Erlang虚拟机)

# rabbitmqctl stop

用上面方法停止RabbitMQ后,只能再通过rabbitmq-server来启动RabbitMQ服务。

只停止RabbitMQ应用 (erl还在运行中,可通过start_app再启动服务)

# rabbitmqctl stop_app

启动RabbitMQ应用 (和停止RabbitMQ应用对应)

# rabbitmqctl start_app

显示RabbitMQ中间件各种信息

# rabbitmqctl -q status

[{pid,1021},
 {running_applications,
     [{rabbitmq_management,"RabbitMQ Management Console","3.5.3"},
      {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.5.3"},
      {webmachine,"webmachine","1.10.3-rmq3.5.3-gite9359c7"},
      {mochiweb,"MochiMedia Web Server","2.7.0-rmq3.5.3-git680dba8"},
      {rabbitmq_mqtt,"RabbitMQ MQTT Adapter","3.5.3"},
      {rabbitmq_stomp,"Embedded Rabbit Stomp Adapter","3.5.3"},
      {rabbitmq_management_agent,"RabbitMQ Management Agent","3.5.3"},
      {rabbitmq_amqp1_0,"AMQP 1.0 support for RabbitMQ","3.5.3"},
      {rabbit,"RabbitMQ","3.5.3"},
      {os_mon,"CPO  CXC 138 46","2.3.1"},
      {mnesia,"MNESIA  CXC 138 12","4.12.5"},
      {amqp_client,"RabbitMQ AMQP Client","3.5.3"},
      {inets,"INETS  CXC 138 49","5.10.6"},
      {xmerl,"XML parser","1.3.7"},
      {sasl,"SASL  CXC 138 11","2.4.1"},
      {stdlib,"ERTS  CXC 138 10","2.4"},
      {kernel,"ERTS  CXC 138 10","3.2"}]},
 {os,{unix,darwin}},
 {erlang_version,
     "Erlang/OTP 17 [erts-6.4] [source] [64-bit] [smp:4:4] [async-threads:30] [hipe] [kernel-poll:true]
"},
 {memory,
     [{total,44296616},
      {connection_readers,0},
      {connection_writers,0},
      {connection_channels,0},
      {connection_other,5616},
      {queue_procs,68848},
      {queue_slave_procs,0},
      {plugins,543352},
      {other_proc,14341880},
      {mnesia,80856},
      {mgmt_db,134344},
      {msg_index,41448},
      {other_ets,1295928},
      {binary,166520},
      {code,21567638},
      {atom,744345},
      {other_system,5305841}]},
 {alarms,[]},
 {listeners,
     [{clustering,25678,"::"},
      {amqp,5678,"127.0.0.1"},
      {stomp,61613,"::"},
      {mqtt,1883,"::"}]},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,2972144435},
 {disk_free_limit,50000000},
 {disk_free,42164834304},
 {file_descriptors,
     [{total_limit,156},{total_used,5},{sockets_limit,138},{sockets_used,3}]},
 {processes,[{limit,1048576},{used,212}]},
 {run_queue,0},
 {uptime,2123}]

启动插件

user@localhost:/usr/local/Cellar/rabbitmq/3.5.3/sbin> ./rabbitmq-plugins enable rabbitmq_management

启动插件成功:

The following plugins have been enabled:
  mochiweb
  webmachine
  rabbitmq_web_dispatch
  rabbitmq_management_agent
  rabbitmq_management
Applying plugin configuration to rabbit@localhost... started 5 plugins.

默认可是可以再本地登陆,使用guest用户,密码也是guest. http://localhost:15672

注意:guest用户不能远程登陆。

进入/usr/sbin目录 可以使用./rabbitmqctl add_user 用户名 密码

例如:./rabbitmqctl add_user peter 123456

并设置新添加的用户状态 使用./rabbitmqctl set_user_tags wuge administrator

更多参考:https://www.rabbitmq.com/management.html#configuration

关闭插件

./rabbitmq-plugins disable rabbitmq_management

关闭插件成功

The following plugins have been disabled:
  mochiweb
  webmachine
  rabbitmq_web_dispatch
  rabbitmq_management_agent
  rabbitmq_management
Applying plugin configuration to rabbit@localhost... stopped 5 plugins.

查看已经安装的插件

./rabbitmq-plugins list

结果

Configured: E = explicitly enabled; e =implicitly enabled
 | Status:   * =running on rabbit@localhost
 |/
[e*] amqp_client                       3.5.3
[  ] cowboy                            0.5.0-rmq3.5.3-git4b93c2d
[e*] mochiweb                          2.7.0-rmq3.5.3-git680dba8
[E*] rabbitmq_amqp1_0                  3.5.3
[  ] rabbitmq_auth_backend_ldap        3.5.3
[  ] rabbitmq_auth_mechanism_ssl       3.5.3
[  ] rabbitmq_consistent_hash_exchange 3.5.3
[  ] rabbitmq_federation               3.5.3
[  ] rabbitmq_federation_management    3.5.3
[E*] rabbitmq_management               3.5.3
[e*] rabbitmq_management_agent         3.5.3
[  ] rabbitmq_management_visualiser    3.5.3
[E*] rabbitmq_mqtt                     3.5.3
[  ] rabbitmq_shovel                   3.5.3
[  ] rabbitmq_shovel_management        3.5.3
[E*] rabbitmq_stomp                    3.5.3
[  ] rabbitmq_test                     3.5.3
[  ] rabbitmq_tracing                  3.5.3
[e*] rabbitmq_web_dispatch             3.5.3
[  ] rabbitmq_web_stomp                3.5.3
[  ] rabbitmq_web_stomp_examples       3.5.3
[  ] sockjs                            0.3.4-rmq3.5.3-git3132eb9
[e*] webmachine                        1.10.3-rmq3.5.3-gite9359c7

列出当前Rabbit的插件列表:

./rabbitmq-plugins list -v  显示所有可以用的插件
./rabbitmq-plugins list -m  仅显示插件名称
./rabbitmq-plugins list -E  显示所有使用的插件
/rabbitmq-plugins list -E
 Configured: E = explicitly enabled; e =implicitly enabled
 | Status:   * =running on rabbit@localhost
 |/
[E*] rabbitmq_amqp1_0    3.5.3
[E*] rabbitmq_management 3.5.3
[E*] rabbitmq_mqtt       3.5.3
[E*] rabbitmq_stomp      3.5.3

查看exchange信息:
./rabbitmqctl list_exchanges name type durable auto_delete arguments

RabbitMQ OS X下安装及常用命令-1第1张

查看队列信息:
./rabbitmqctl list_queues name durable auto_delete messages consumers memory

RabbitMQ OS X下安装及常用命令-1第2张

查看绑定信息:
RabbitMQ OS X下安装及常用命令-1第3张

访问http://localhost:15672进入rabbitMq的后台管理:

RabbitMQ OS X下安装及常用命令-1第4张

RabbitMQ OS X下安装及常用命令-1第5张

新建 type 为topic 的exchange:

RabbitMQ OS X下安装及常用命令-1第6张

新建 Durable的Queues

RabbitMQ OS X下安装及常用命令-1第7张

Exchange: IhotelOrderExchange 通过Routing key (*.P1)bind到Queue IhotelOrderQueue

RabbitMQ OS X下安装及常用命令-1第8张

RabbitMQ OS X下安装及常用命令-1第9张

查看IhotelOrderQueue绑定的Exchange

RabbitMQ OS X下安装及常用命令-1第10张

RabbitMQ OS X下安装及常用命令-1第11张

3.3. rabbitmqadmin

Management Command Line Tool 是RabbitMQ管理插件提供的工具,提供几乎和管理界面一样的功能。
它能做的事情很多,比如:

  • 查看exchanges, queues, bindings, vhosts, users, permissions, connections 和 channels
  • 查看node概要信息
  • 创建或删除exchanges, queues, bindings, vhosts, users 和 permissions.
  • 生产和消费消息
  • 备份、恢复配置信息等。

创建queue

# rabbitmqadmin declare queue name=test
queue declared

发布消息

# rabbitmqadmin publish exchange=amq.default routing_key=test payload=”hello, world”
Message published

消费消息

# rabbitmqadmin get queue=test requeue=false

requeue=false表示取得消息后即从队列里删除。如果我们只是确认队列里的消息状态而不想真的消费,可以不指定此参数。

4. 更改配置文件

像上面那样我们简单的就可以运行其RabbitMQ的服务程序并进行消息的收发,并不需要做什么设置。

不错,默认的RabbitMQ已经为我们做了很多默认的设置,通过brew安装的话默认一些文件路径如下:

  • Logs: /usr/local/var/log/rabbitmq
  • Config: /usr/local/etc/rabbitmq
  • Mnesia Database: /usr/local/var/lib/rabbitmq/mnesia

然后,有时候默认设置是不能满足我们的需求的,更细化、个性的设置,
我们都可以通过修改RabbitMQ的配置文件来完成。

在RabbitMQ中,配置文件有两个(注意后缀名都不一样):

  1. rabbitmq-env.conf
  2. rabbitmq.config

rabbitmq-env.conf

其中,rabbitmq-env.conf的位置是固定的,不能改变的。里主要进行环境变量的设置,比如系统安装后默认的设置内容如下:

# cat rabbitmq-env.conf
CONFIG_FILE=/usr/local/etc/rabbitmq/rabbitmq
NODE_IP_ADDRESS=127.0.0.1
NODENAME=rabbit@localhost

通过变量CONFIG_FILE指定了rabbitmq.config的位置(注意没有后缀名,RabbitMQ会自动天剑的)
默认的服务器监听IP地址是127.0.0.1,如果想在其它机器访问,需要修改一下这个值。

rabbitmq.config

rabbitmq.config的文件位置是可以配置的,且文件内容是已Erlang的语法来记述的。

关于两个配置文件的具体说明,请参考官方文档:http://www.rabbitmq.com/configure.html

免责声明:文章转载自《RabbitMQ OS X下安装及常用命令-1》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python进程池:multiprocessing.poolMyBatis中的mapper中的<sql/>标签介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

STM32CubeIDE+FreeRTOS消息队列实验

新建工程RTOS_Message,配置如下: Ctrl + S生成代码 修改代码, 1,在main.h中添加 //添加include/*Private includes ----------------------------------------------------------*/ /*USER CODE BEGIN Includes */#in...

PHP消息队列实现及应用

参考:https://www.cnblogs.com/JAYIT/p/10579888.html 目前对消息队列并不了解其原理,本篇文章主要是通过慕课网学习归纳的一些笔记,为后续学习打下基础。 众所周知在对网站设计的时候,会遇到给用户“群发短信”,“订单系统有大量的日志”,“秒杀设计”等,服务器没法处理这种瞬间迸发的压力,这种情况要保证系统正常有效的使用,...

RabbitMQ入门

abbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。 1.安装Erlang 所以在安装rabbitMQ之前,需要先安装Erlang 。 小编使用的是otp_wi...

一、从Windows消息机制说起

    一,消息       消息(Message)指的就是Windows 操作系统发给应用程序的一个通知,它告诉应用程序某个特定的事件发生了。比如,用户单击鼠标或按键都会引发Windows 系统发送相应的消息。最终处理消息的是应用程序的窗口函数,如果程序没处理的话操作系统有默认函数将会作出处理。     从数据结构的角度来说,消息是一个结构体,它包含了...

.Net Core 商城微服务项目系列(十五): 构建定时任务调度和消息队列管理系统

一.系统描述 嗨,好久不见各位老哥,最近有点懒,技术博客写的太少了,因为最近在写小说,写的顺利的话说不定就转行了,哈哈哈哈哈哈哈哈哈。 今天要介绍的是基于.Net Core的定时任务调度和消息队列管理系统。相信大家对这两个肯定都已经很熟悉了,在开发过程中,这两个组件扮演了不可或缺的角色: 消息队列帮助我们进行 ”解耦“、”异步“、”削峰“ 定时任务帮助我们...

使用NODEJS+REDIS开发一个消息队列以及定时任务处理

作者:RobanLee 原创文章,转载请注明: 萝卜李 http://www.robanlee.com 源码在这里: https://github.com/robanlee123/RobCron时间有限,就不详细注释,有问题或者意见欢迎@我,也欢迎大家批评指正. 本文所必须的一些资料如下: 1. NODEJS ==> 可以去NODEJS.ORG下载...