组件

RabbitMQ 配置

Discusiones [ Anterior | Siguiente ]
RabbitMQ 配置
rabbitmq
Respuesta
21/03/17 6:34

RabbitMQ 配置

添加用户

在管理台我们,我们需要为刚才的admin配置权限,点名字进去即可,conf/write/read 都配成缺省显示的那个.* 即可。

这里写图片描述

Rabbitmq的配置文件有三个,位于/etc/rabbitmq/,

这三个文件分别是:

(1)enabled_plugins, 设置允许的插件列表,该配置文档的格式为erlang的列表格式如[rabbitmq_management,rabbitmq_visualiser].

(2)rabbitmq.conf,如果rabbitmq.config不存在,可以手动创建它. 如果你修改了位置,可设置RABBITMQ_CONFIG_FILE 环境变量来指定. Erlang 运行时会自动在此变量值后添加.config扩展名,重启服务器后生效.

(3)rabbitmq-env.conf ,如果rabbitmq-env.conf不存在, 可在默认位置中手动创建,rabbitmq的环境参数配置

RABBITMQ_NODE_PORT  端口设置,默认为5672

RABBITMQ_NODENAME   节点名称,默认为rabbit

MNESIA_BASE 后端存储目录  ,默认为/var/lib/rabbitmq/mnesia

LOG_BASE 日志目录,默认为/var/log/rabbitmq/

其它参数详情请见:http://www.rabbitmq.com/configure.html

RabbitMQ环境变量

RabbitMQ 环境变量有一个RABBITMQ_前辍. 典型的环境变量RABBITMQ_var_name是按下面进行设置的:

  • 如果在 shell环境变量中定义了名为RABBITMQ_var_name的变量,则优先使用此定义;
  • 否则,使用 rabbitmq-env.conf中变量名为var_name的定义;
  • 否则,使用系统指定的默认值.

文件位置

     默认文件位置:

Config file /etc/rabbitmq/rabbitmq.config (not found)
Database directory /var/lib/rabbitmq/mnesia/rabbit@MSBQA02
Log file /var/log/rabbitmq/rabbit@MSBQA02.log
SASL log file

/var/log/rabbitmq/rabbit@MSBQA02-sasl.log

你可以设置下面的环境变量来指定相关文件的位置,但大部分人都不必这样做:

名称 描述
RABBITMQ_BASE 此基础目录包含了RabbitMQ server的数据库,日志文件的子目录. 另外,也可以独立设置RABBITMQ_MNESIA_BASE 和 RABBITMQ_LOG_BASE 目录.
RABBITMQ_CONFIG_FILE 用于配置文件的路径,无.config扩展名. 如果 configuration file 存在,服务器将使用它来配置RabbitMQ组件. 参考 Configuration guide 来了解更多信息.
RABBITMQ_MNESIA_BASE 包含RabbitMQ 服务器Mnesia数据库文件子目录的基本目录,除非明确设置了RABBITMQ_MNESIA_DIR目录,否则每个节点都应该配置一个. (除了Mnesia文件,这个位置还包含消息存储和索引文件以及模式和集群的细节.)
RABBITMQ_MNESIA_DIR RabbitMQ节点Mnesia数据库文件安放的目录. (除了Mnesia文件,这个位置还包含消息存储和索引文件以及模式和集群的细节.)
RABBITMQ_LOG_BASE 用于包含RabbitMQ 服务器日志文件的基本目录, 除非明确设置了RABBITMQ_LOGS 或 RABBITMQ_SASL_LOGS.
RABBITMQ_LOGS RabbitMQ 服务器的Erlang日志文件路径.在Window上不能覆盖此变量.
RABBITMQ_SASL_LOGS RabbitMQ服务器的Erlang SASL (System Application Support Libraries)日志文件路径. 在Window上不能覆盖此变量.
RABBITMQ_PLUGINS_DIR 用于查找插件目录 .
RABBITMQ_PLUGINS_EXPAND_DIR
用于在启动服务器时扩展启用插件的工作目录。
RABBITMQ_ENABLED_PLUGINS_FILE
此文件记录了显式启用的插件。
RABBITMQ_PID_FILE 此文件中包含了rabbitmqctl所等待进程ID的信息.

参考:http://www.blogjava.net/qbna350816/archive/2016/08/02/431415.aspx 

2.      集群配置

(1)手动配置

a)首先在每个节点上启动RabbitMq

host1#rabbitmq-server-detached

host2#rabbitmq-server-detached

host3#rabbitmq-server-detached

此时每个节点自成集群,每个集群只有本节点

可以通过exportRABBITMQ_NAME=xxx 指定节点名称,若不指定默认为rabbit

完整的节点名为xxx@hostname

b)加入集群

让host2 和host3上的rabbitmq节点加入到 host1的rabbitmq集群

使用rabbitmqctl命令对rabbitmq进行操作

加入集群前必须停止当前app,加入后在重启app,过程如下:

host2#rabbitmqctlstop_app

host2#rabbitmqctlcluster rabbit@host1

host2#rabbitmqctlstart_app

host3#rabbitmqctlstop_app

host3#rabbitmqctlcluster rabbit@host1

host3#rabbitmqctlstart_app

 

关于节点类型(ram |disk)

ram节点的状态保存在内存中,disk节点保存在磁盘中

被加入的节点为disk,如本例中rabbit@host1为disk节点,rabbit@host2,rabbit@host3为ram节点

可以通过rabbitmqctlcluster命令改变加入的集群以及节点类型该命令后可以加多个节点名称,指定的节点就会变成disk节点

如可以将本例中所有节点都改成disk节点

host2#rabbitmqctlstop_app

host2#rabbitmqctlreset

host2#rabbitmqctlcluster rabbit@host1 rabbit@host2

host2#rabbitmqctlstart_app

host3#rabbitmqctlstop_app

host3#rabbitmqctlreset

host3#rabbitmqctlcluster rabbit@host1 rabbit@host3

host3#rabbitmqctlstart_app

(2) 自动配置:

rabbitmq的默认配置脚本为

/etc/rabbitmq/rabbitmq.conf

在其中添加

[

...

{rabbit, [

...

{cluster_nodes,['rabbit@host1', 'rabbit@host2', 'rabbit@host3']},

...

]},

...

].

分别启动每个rabbitmq节点

rabbitmq-detached

rabbitmq就自动组成集群了

注意事项:

1)每个节点的erlangcookie须相同,可以在启动服务器加–setcookie参数设置相同的参数,也可以在home目录下设置相同的.erlang.cookie文件。

2)节点间应该能相互解析,可以通过修改/etc/hosts文件实现

 

0 (0 Votos)