转载自:http://www.codeweblog.com/rabbitmq-%E5%AE%89%E8%A3%85%E5%90%8E%E7%9A%84%E9%80%9A%E7%94%A8%E9%85%8D%E7%BD%AE%E4%B8%8E%E6%93%8D%E4%BD%9C/;加了一些自己的理解和重点注解;
网上有很多都介绍了rabbitmq的安装与配置,然而真正在配置部署的时候还得要临时翻看下相关的文档,比如需要在一台机器上部署rabbitmq的集群时,就会不断因为端口冲突而导致不能正常启动和运行。另外,从rabbitmq版本升级后使用方式的变更可能因为使用默认的配置而导致无法正常使用,因此有了这篇文章。
常用配置与操作
节点名称
在rabbitmq-env.conf文件中,可以通过变量NODENAME对节点名进行设置。默认的节点名称为rabbit(实际上真正的节点名称为NODENAME@HOST ,NODENAME从配置文件中获取,HOST为该服务器的主机名)。例如,配置节点名为spurs:
NODENAME=spurs(注:配置文件里是:NODENAME=rabbit@${HOSTNAME%%.*})
请注意:"="前后无空格,另外,该文件需要手动创建。
用于客户端连接的侦听端口
修改这个侦听端口有两种方式,一种方式是在rabbitmq.config文件中(注:重要,在配置文件里开启15672和5672端口),通过配置项tcp_listeners配置指定端口,如未进行配置,rabbitmq会使用默认的端口5672。例如,配置端口为5670
[
{rabbit, [{tcp_listeners, [5670]}]}
].
另一种方式是通过配置文件rabbitmq-env.conf中的变量NODE_PORT来设置侦听端口,例如:
NODENAME=spurs
NODE_PORT=5675
注意:如果两个文件中都进行了配置,rabbitmq会优先使用rabbtmq-env.conf中变量NODE_PORT的值作为真正的侦听端口。
用于集群通信的erlang节点侦听端口
3.3.0以前的版本,rabbitmq会选用一个随机的端口作为erlang节点的侦听端口,这个端口主要用于集群间的通信。如果需要指定侦听端口的话,可以在rabbitmq-env.conf文件中增加变量SERVER_START_ARGS来设置侦听端口或者端口范围。
例如设置侦听端口范围为50000到51000
SERVER_START_ARGS="-kernel inet_dist_listen_min 50000 -kernel inet_dist_listen_max 51000"
3.3.0及以后版本,rabbitmq做了些改动——固定了用于集群通信的侦听端口,默认为25672(重要)。可以通过上面提到的rabbitmq-env.conf配置文件中的NODE_PORT配置来指定侦听端口,rabbitmq启动时会在设置的侦听端口加20000(查看脚本rabbitmq-server可以看到这个加的动作)作为真正的侦听端口。
web侦听端口
rabbitmq安装完成后,一般会启用管理控制台插件方便使用和运维。rabbitmq也会相应的在一个端口上进行侦听用于http的访问,默认的侦听端口为15672,可以在rabbitmq.config中按需进行设置。例如:
[
{rabbitmq_management, [{listener, [{port, 60000}]}]}
].
创建用户
rabbitmq在安装完成后仅提供guest账号,但是在3.3.0及以后版本里,处于安全方面的考虑,guest账号仅能通过本地(lo网口)进行访问,因此安装完成后,需要为使用者创建不同的用户账号,更多信息可参考rabbitmq——用户管理。