RabbitMQ 命令
rabbitmq-server start -detached //启动rabbitmq,-detached代表后台守护进程方式启动
rabbitmqctl status //查看单节点状态
rabbitmqctl stop //关闭节点服务
rabbitmqctl stop_app //关闭应用
rabbitmqctl start_app //启动应用
rabbitmqctl list_users //列出账号
rabbitmqctl cluster_status rabbitmq集群状态查看
rabbitmq-plugins enable rabbitmq_management #开启插件管理页面 打开端口15672
rabbitmqctl list_users # 查看所有用户
rabbitmqctl delete_user guest # 查看默认用户
rabbitmqctl list_user_permissions username # 查看用户的权限
创建用户
rabbitmqctl add_user admin password
rabbitmqctl set_user_tags admin administrator # 设置用户tag
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" # 赋予用户默认vhost的全部操作权限
rabbitmqctl stop #关闭服务
groupadd rabbitmq #添加组
useradd rabbitmq -g rabbitmq -s /sbin/nologin #添加管理RabbitMQ用户并禁止登陆
rabbitmqctl purge_queue queue_name #清空指定queue队列的数据
RabbitMQ主配置文件
more /opt/rabbitmq_server-3.8.3/etc/rabbitmq/rabbitmq.config
[
{rabbit, [
{tcp_listeners,[{"0.0.0.0",5672}]}, #监听AMQP连接默认端口:5672
{loopback_users, []},
{log_levels, [{connection, error}, {channel, error}]}, #控制日志记录的粒度
{vm_memory_high_watermark_paging_ratio, 0.75}, #32G内存,32*0.8*0.2时开始持久化磁盘
{vm_memory_high_watermark, 0.8}, #设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,erlang开始GC。
{hipe_compile, true}, #开启hipe,提高erlang性能,可以有20-50%的性能优化,延迟启动
{disk_free_limit, "10GB"}, #磁盘使用量剩余10G时,不收发消息(磁盘使用量剩余2选1)
{disk_free_limit, {mem_relative, 1.0}} #磁盘使用量剩余至物理内存相同时不收发消息(磁盘使用量剩余2选1)
{disk_free_limit, {mem_relative, 5.0}}#磁盘使用量剩余至物理内存5倍时不收发消息(磁盘使用量剩余2选1)
]}
].
内存警告:
命令行设置最高使用内存占比:
rabbitmqctl set_vm_memory_high_watermark 0.6 设置内存低水位线为物理内存的60%
参数配置:
vm_memory_high_watermark, 0.8 : 设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,即内存总量的40%
vm_memory_high_watermark_paging_ratio, 0.75 : 设置内存低水位线消息开始持久化到磁盘,默认50%
磁盘警告:
命令行设置磁盘使用量剩余
rabbitmqctl set_disk_free_limit 50G #磁盘使用量剩余50G时,不收发消息
rabbitmqctl set_disk_free_limit mem_relative 10.0 #磁盘使用量剩余至物理内存10倍时,不收发消息
当磁盘剩余空间低于确定的阈值时,RabbitMQ同样会阻塞生产者。
默认情况下磁盘阈值为50MB,表示当磁盘剩余空间低于50MB时会阻塞生产者并停止内存中消息的换页动作。
参数配置:
[{rabbit, [{disk_free_limit, {mem_relative, 1.0}}]}]. #磁盘使用量剩余至物理内存相同时,不收发消息
[{disk_free_limit, "50G"}}]}]. #磁盘使用量剩余50G时,不收发消息
创建MQ数据路径
mkdir -p /data/rabbit/{log,mnesia}
cat >/opt/rabbitmq_server-3.8.3/etc/rabbitmq/rabbitmq-env.conf << EOF
RABBITMQ_CONFIG_FILE=/opt/rabbitmq_server-3.8.3/etc/rabbitmq/rabbitmq.config
RABBITMQ_LOG_BASE=/data/rabbit/log
RABBITMQ_MNESIA_BASE=/data/rabbit/mnesia
EOF
开启web插件
cat > /opt/rabbitmq_server-3.8.3/etc/rabbitmq/enabled_plugins << EOF
[rabbitmq_management].
EOF
开启监控插件rabbitmq-plugins enable rabbitmq_prometheus