rabbitmq的版本更新速度还是比较快的,从BUG的修复到内部实现的优化都有涉及,连命令和使用的方式也稍有变化,因此打算基于rabbitmq-3.3.5版本,重新学习下rabbitmq,并整理形成文档备忘。
网上有很多都介绍了rabbitmq的安装与配置,然而真正在配置部署的时候还得要临时翻看下相关的文档,比如需要在一台机器上部署rabbitmq的集群时,就会不断因为端口冲突而导致不能正常启动和运行。另外,从rabbitmq版本升级后使用方式的变更可能因为使用默认的配置而导致无法正常使用,因此有了这篇文章。
在rabbitmq-env.conf文件中,可以通过变量NODENAME对节点名进行设置。默认的节点名称为rabbit(实际上真正的节点名称为NODENAME@HOST ,NODENAME从配置文件中获取,HOST为该服务器的主机名)。例如,配置节点名为spurs:
NODENAME=spurs
请注意:"="前后无空格,另外,该文件需要手动创建。
修改这个侦听端口有两种方式,一种方式是在rabbitmq.config文件中,通过配置项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的值作为真正的侦听端口。
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可以看到这个加的动作)作为真正的侦听端口。
rabbitmq安装完成后,一般会启用管理控制台插件方便使用和运维。rabbitmq也会相应的在一个端口上进行侦听用于http的访问,默认的侦听端口为15672,可以在rabbitmq.config中按需进行设置。例如:
[ {rabbitmq_management, [{listener, [{port, 60000}]}]} ].
rabbitmq在安装完成后仅提供guest账号,但是在3.3.0及以后版本里,处于安全方面的考虑,guest账号仅能通过本地(lo网口)进行访问,因此安装完成后,需要为使用者创建不同的用户账号,更多信息可参考rabbitmq——用户管理。
上述这些通常是rabbitmq安装完成后需要进行配置或执行的操作,这里未涉及功能相关的配置,监控相关的配置,后续整理相关功能的时候在逐一整理。