参考文章
https://blog.csdn.net/super_rd/article/details/70327712
https://blog.csdn.net/Super_RD/article/details/70327503
一、核心配置文件
/ebin/rabbit.app
Key | Documentation | |
---|---|---|
tcp_listeners | 用于监听 AMQP连接的端口列表(无SSL). 可以包含整数 (即”监听所有接口”)或者元组如 {“127.0.0.1”, 5672} 用于监听一个或多个接口<br/>Default: [5672] | |
num_tcp_acceptors | 接受TCP侦听器连接的Erlang进程数。<br/>Default: 10 | |
handshake_timeout | AMQP 0-8/0-9/0-9-1 handshake (在 socket连接和SSL 握手之后)的最大时间, 毫秒为单位.<br/>Default: 10000 | |
ssl_listeners | 如上所述,用于SSL连接<br/>Default: [] | |
num_ssl_acceptors | 接受SSL侦听器连接的Erlang进程数。<br/>Default: 1 | |
ssl_options | SSL配置.参考SSL documentation.<br/>Default: [] | |
ssl_handshake_timeout | SSL handshake超时时间,毫秒为单位.<br/>Default: 5000 | |
vm_memory_high_watermark | 流程控制触发的内存阀值.相看memory-based flow control 文档.<br/>Default: 0.4 | |
vm_memory_high_watermark_paging_ratio | 高水位限制的分数,当达到阀值时,队列中消息消息会转移到磁盘上以释放内存. 参考memory-based flow control 文档.<br/>Default: 0.5 | |
disk_free_limit | RabbitMQ存储数据分区的可用磁盘空间限制.当可用空间值低于阀值时,流程控制将被触发.此值可根据RAM的总大小来相对设置 (如.{mem_relative, 1.0}).此值也可以设为整数(单位为bytes)或者使用数字单位(如.”50MB”).默认情况下,可用磁盘空间必须超过50MB.参考 Disk Alarms 文档.<br/>Default: 50000000 | |
log_levels | 控制日志的粒度.其值是日志事件类别(category)和日志级别(level)成对的列表.<br/>level 可以是 ‘none’ (不记录日志事件), ‘error’ (只记录错误), ‘warning’ (只记录错误和警告), ‘info’ (记录错误,警告和信息), or ‘debug’ (记录错误,警告,信息以及调试信息).<br/>目前定义了4种日志类别. 它们是<br/>channel -针对所有与AMQP channels相关的事件<br/>connection – 针对所有与网络连接相关的事件<br/>federation – 针对所有与federation相关的事件<br/>mirroring -针对所有与 mirrored queues相关的事件<br/>Default: [{connection, info}] | |
frame_max | 与客户端协商的允许最大frame大小. 设置为0表示无限制,但在某些QPid客户端会引发bug. 设置较大的值可以提高吞吐量;设置一个较小的值可能会提高延迟<br/>Default: 131072 | |
channel_max | 与客户端协商的允许最大chanel大小. 设置为0表示无限制.该数值越大,则broker使用的内存就越高.<br/>Default: 0 | |
channel_operation_timeout | Channel 操作超时时间(毫秒为单位) (内部使用,因为消息协议的区别和限制,不暴露给客户端)<br/>Default: 5000 | |
heartbeat | 表示心跳延迟(单位为秒) ,服务器将在connection.tune frame中发送.如果设置为 0, 心跳将被禁用. 客户端可以不用遵循服务器的建议, 查看 AMQP reference 来了解详情. 禁用心跳可以在有大量连接的场景中提高性能,但可能会造成关闭了非活动连接的网络设备上的连接落下.<br/>Default: 60 (3.5.5之前的版本是580) | |
default_vhost | 当RabbitMQ从头开始创建数据库时创建的虚拟主机. amq.rabbitmq.log交换器会存在于这个虚拟主机中.<br/>Default: <<“/”>> | |
default_user | RabbitMQ从头开始创建数据库时,创建的用户名.<br/>Default: <<“guest”>> | |
default_pass | 默认用户的密码.<br/>Default: <<“guest”>> | |
default_user_tags | <br/>默认用户的Tags.<br/>Default: [administrator] | |
default_permissions | 创建用户时分配给它的默认Permissions .<br/>Default: [<<“.”>>, <<“.”>>, <<“.*”>>] | |
loopback_users | 只能通过环回接口(即localhost)连接broker的用户列表<br/>如果你希望默认的guest用户能远程连接,你必须将其修改为[].<br/>Default: [<<“guest”>>] | |
cluster_nodes | 当节点第一次启动的时候,设置此选项会导致集群动作自动发生. 元组的第一个元素是其它节点想与其建立集群的节点. 第二个元素是节点的类型,要么是disc,要么是ram<br/>Default: {[], disc} | |
server_properties | 连接时向客户端声明的键值对列表<br/>Default: [] | |
collect_statistics | 统计收集模式。主要与管理插件相关。选项:<br/>none (不发出统计事件)<br/>coarse (发出每个队列 /每个通道 /每个连接的统计事件)<br/>fine (也发出每个消息统计事件)你自已可不用修改此选项.<br/>Default: none | |
collect_statistics_interval | 统计收集时间间隔(毫秒为单位). 主要针对于 management plugin.<br/>Default: 5000 | |
auth_mechanisms | 提供给客户端的SASL authentication mechanisms.<br/>Default: [‘PLAIN’, ‘AMQPLAIN’] | |
auth_backends | 用于 authentication / authorisation backends 的列表. 此列表可包含模块的名称(在模块相同的情况下,将同时用于认证来授权)或像{ModN, ModZ}这样的元组,在这里ModN将用于认证,ModZ将用于授权.<br/>在2元组的情况中, ModZ可由列表代替,列表中的所有元素必须通过每个授权的确认,如{ModN, [ModZ1, ModZ2]}.这就允许授权插件进行组合提供额外的安全约束.<br/>除rabbit_auth_backend_internal外,其它数据库可以通常 plugins来使用.<br/>Default: [rabbit_auth_backend_internal] | |
reverse_dns_lookups | 设置为true,可让客户端在连接时让RabbitMQ 执行一个反向DNS查找, 然后通过 rabbitmqctl 和 管理插件来展现信息.<br/>Default: false | |
delegate_count | 内部集群通信中,委派进程的数目. 在一个有非常多核的机器(集群的一部分)上,你可以增加此值.<br/>Default: 16 | |
trace_vhosts | tracer内部使用.你不应该修改<br/>Default: [] | |
tcp_listen_options | 默认socket选项. 你可能不想修改这个选项.<br/>Default:<br/>[{backlog, 128},{nodelay, true}, {exit_on_close, false}] | |
hipe_compile | 将此选项设置为true,将会使用HiPE预编译部分RabbitMQ,Erlang的即时编译器.这可以增加服务器吞吐量,但会增加服务器的启动时间.<br/>你可以看到花费几分钟延迟启动的成本,就可以带来20-50% 更好性能.这些数字与高度依赖于工作负载和硬件.<br/>HiPE 支持可能没有编译进你的Erlang安装中.如果没有的话,启用这个选项,并启动RabbitMQ时,会看到警告消息. 例如, Debian / Ubuntu 用户需要安装erlang-base-hipe 包.<br/>HiPE并非在所有平台上都可用,尤其是Windows.<br/>在 Erlang/OTP 17.5版本之前,HiPE有明显的问题 . 对于HiPE,使用最新的OTP版本是高度推荐的<br/>Default: false | |
cluster_partition_handling | 如何处理网络分区.可用模式有:<br/>ignore<br/>pause_minority<br/>{pause_if_all_down, [nodes], ignore \ | autoheal}where [nodes] is a list of node names(ex: [‘rabbit@node1’, ‘rabbit@node2’])<br/>autoheal<br/>参考documentation on partitions 来了解更多信息<br/>Default: ignore |
cluster_keepalive_interval | 节点向其它节点发送存活消息和频率(毫秒). 注意,这与 net_ticktime是不同的;丢失存活消息不会引起节点掉线<br/>Default: 10000 | |
queue_index_embed_msgs_below | 消息大小在此之下的会直接内嵌在队列索引中. 在修改此值时,建议你先阅读 persister tuning 文档.<br/>Default: 4096 | |
msg_store_index_module | 队列索引的实现模块. 在修改此值时,建议你先阅读 persister tuning 文档.<br/>Default: rabbit_msg_store_ets_index | |
backing_queue_module | 队列内容的实现模块. 你可能不想修改此值.<br/>Default: rabbit_variable_queue | |
msg_store_file_size_limit | Tunable value for the persister. 你几乎肯定不应该改变此值。<br/>Default: 16777216 | |
mnesia_table_loading_timeout | 在集群中等待使用Mnesia表可用的超时时间。<br/>Default: 30000 | |
queue_index_max_journal_entries | Tunable value for the persister. 你几乎肯定不应该改变此值。<br/>Default: 65536 | |
queue_master_locator | Queue master 位置策略.可用策略有:<br/><<“min-masters”>><br/><<“client-local”>><br/><<“random”>><br/>查看documentation on queue master location 来了解更多信息.<br/>Default: <<“client-local”>> |
开启可以远程访问
{loopback_users, [<<"guest">>]},
修改成
{loopback_users, ["guest"]},
二、常用操作命令
启动rabbitmq:
rabbitmq-service start
或者用
rabbitmqctl start_app
服务的停止用
rabbitmqctl stop_app
rabbitmq-service stop
查看节点状态
rabbitmqctl status
激活 RabbitMQ’s Management Plugin
查看安装插件列表
rabbitmq-plugins list
启动:
rabbitmq-plugins enable rabbitmq_management
关闭:
rabbitmq-plugins disable rabbitmq_management
管控制台访问端口是15672
操作命令
添加用户
rabbitmqctl add_user username password
删除用户
rabbitmqctl delete_user username
修改密码
rabbitmqctl change_password username newpassword
分配角色
rabbitmqctl set_user_tags username administrator
角色说明
- none 最小权限角色
- management 管理员角色
- policymaker 决策者
- monitoring 监控
- administrator 超级管理员
查看所有用户
命令:rabbitmqctl list_users
C:\Users\Administrator.DESKTOP-54RGE4G
$ rabbitmqctl list_users
Listing users ...
guest [administrator]
使用 用户guest 账号进行登陆
账号和密码默认一样
启动的时候默认日志格式是:rabbitmq@主机名.log
清除用户权限
rabbitmqctl clear_permissions -p vhostpath username
列出用户权限
命令:rabbitmqctl list_user_permissions username
$ rabbitmqctl list_user_permissions guest
Listing permissions for user "guest" ...
/ .* .* .*
设置用户权限
命令:rabbitmqctl set_permissions -p vhostpath username “.*” “.*” “.*”
虚拟主机
创建
rabbitmqctl add_vhost vhostpath
列出所有虚拟主机
rabbitmqctl list_vhosts
列出虚拟主机的权限
rabbitmqctl list_permissions -p vhostpath
删除虚拟主机
rabbitmqctl delete_vhost vhostpath
消息队列
查看所有队列信息
rabbitmqctl list_queues
移除所有数据
rabbitmqctl rest
要在rabbitmqctl stop_app之后