OS X下安装RabbitMQ
RabbitMQ是用Erlang写的OpenSource的消息队列(Message Queue)软件,并且有付费的商业版支持。
所谓消息,在类似JMS等现代系统里,尝尝作为一种异步操作的机制,来实现快速的轻量的信息交换。其最简单的模式就是发布-订阅( Publish/Subscribe)。 RabbitMQ的主页在
RabbitMQ是用Erlang编写的,所以需要先安装Erlang,如果有的话跳过这步即可(我是跳过了,系统已有)。
# brew install erlang
确保系统有Erlang环境后,即可使用brew安装RabbitMQ了,安装很简单,只需如下即可:
# brew update
# brew install rabbitmq
安装后需要将/usr/local/sbin添加到$PATH里去,我的环境下编辑~/.profile就行了。 具体的官方操作文档在这里:
http://www.rabbitmq.com/install-homebrew.html##
rabbitmq-server用来启动RabbitMQ服务器进程:
# rabbitmq-server -detached
如果不加上面的-datached,即非守护启动方式,启动后控制台被挂起,ctrl+c信号会发给其进程,从而可以直接kill掉进程。
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
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表示取得消息后即从队列里删除。如果我们只是确认队列里的消息状态而不想真的消费,可以不指定此参数。
RabbitMQ自带了一个基于Web的管理界面,默认会监听端口15672,即可以通过浏览器来访问http://server-name:15672/。
像上面那样我们简单的就可以运行其RabbitMQ的服务程序并进行消息的收发,并不需要做什么设置。
不错,默认的RabbitMQ已经为我们做了很多默认的设置,通过brew安装的话默认一些文件路径如下:
Logs: /usr/local/var/log/rabbitmq
Config: /usr/local/etc/rabbitmq
Mnesia Database: /usr/local/var/lib/rabbitmq/mnesia
然后,有时候默认设置是不能满足我们的需求的,更细化、个性的设置, 我们都可以通过修改RabbitMQ的配置文件来完成。
在RabbitMQ中,配置文件有两个(注意后缀名都不一样):
rabbitmq-env.conf rabbitmq.config
其中,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的文件位置是可以配置的,且文件内容是已Erlang的语法来记述的。
关于两个配置文件的具体说明,请参考官方文档:http://www.rabbitmq.com/configure.html
http://liubin.org/2013/09/04/rabbitmq-on-os-x/
Configuration https://www.rabbitmq.com/configure.html