文档章节

【原创】RabbitMQ启动参数具体含义

摩云飞
 摩云飞
发布于 2013/02/04 12:41
字数 1007
阅读 2390
收藏 18
点赞 0
评论 0
     本文详细说明了 rabbitmq 服务程序启动时配置参数的含义。
[root@Betty mnt]# ps aux|grep rabbit
root      3588  0.3  0.9 133420 37812 ?        Sl   09:35   0:11 /usr/local/lib/erlang/erts-5.9.2/bin/beam.smp -W w -K true -A30 -P 1048576 -- -root /usr/local/lib/erlang -progname erl -- -home /root -- -pa /usr/local/sbin/../ebin -noshell -noinput -s rabbit boot -sname rabbit@Betty -boot start_sasl -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/rabbit@Betty.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@Betty-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/local/sbin/../plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@Betty-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@Betty" -noshell -noinput

     我们通常使用 erl <arguments> 命令启动 Erlang 的运行时系统,其中  arguments 就是我们启动时指定的各种参数。其类型如下:

  • +    emulator flag            there are a small number of "-" flags which now actually are emulator flags
  • -    flag    {init flag, user flag}  init process interprets init flags, and stores user flags.    
  • --   plain argument          init process plain argument, -extra causes everything that follows to become plain arguments

可以在 Erlang shell 或者 code 中通过如下调用获取相应的值:

  • init:get_argument/1                -- 获取指定 user flag 或者系统自定义 flag 的值
  • init:get_arguments/0              -- 获取所有 user flag 和系统自定义 flag 的值
  • init:get_plain_arguments/0     -- 获取所有 plain argument 的值

     下面将上面的启动参数进行分解说明:

/usr/local/lib/erlang/erts-5.9.2/bin/beam.smp 

-W w
==========
+W w | i
Sets the mapping of warning messages for error_logger. 
Messages sent to the error logger using one of the warning routines can be mapped either to errors (default), warnings (+W w), or info reports (+W i). The current mapping can be retrieved using error_logger:warning_map/0. See error_logger(3) for further information.
==========
-K true
==========
+K true | false
Enables or disables the kernel poll functionality if the emulator supports it. Default is false (disabled). If the emulator does not support kernel poll, and the +K flag is passed to the emulator, a warning is issued at startup.
==========
-A30
==========
+A size
Sets the number of threads in async thread pool, valid range is 0-1024. Default is 0.
==========
-P 1048576 
==========
+P Number
Sets the maximum number of concurrent processes for this system. Number must be in the range 16..134217727.
Default is 32768.
==========
-- 
==========
--(init flag)
Everything following -- up to the next flag (-flag or +flag) is considered plain arguments and can be retrieved using init:get_plain_arguments/0.
==========

-root /usr/local/lib/erlang 
-progname erl 

-- 
-home /root 
-- 

-pa /usr/local/sbin/../ebin
==========
-pa Dir1 Dir2 ...
Adds the specified directories to the beginning of the code path, similar to code:add_pathsa/1. See code(3).
As an alternative to -pa, if several directories are to be prepended to the code and the directories have a common parent directory, that parent directory could be specified in the ERL_LIBS environment variable. See code(3).
-pz Dir1 Dir2 ...
Adds the specified directories to the end of the code path, similar to code:add_pathsz/1. See code(3).
==========
-noshell
-noinput
==========
-noinput
Ensures that the Erlang runtime system never tries to read any input. Implies -noshell.
-noshell
Starts an Erlang runtime system with no shell. This flag makes it possible to have the Erlang runtime system as a component in a series of UNIX pipes.
==========
-s rabbit boot 
==========
-s Mod [Func [Arg1, Arg2, ...]](init flag)
Makes init call the specified function. Func defaults to start. If no arguments are provided, the function is assumed to be of arity 0. Otherwise it is assumed to be of arity 1, taking the list [Arg1,Arg2,...] as argument. All arguments are passed as atoms. See init(3).
==========
-sname rabbit @Betty -boot start_sasl 
==========
-sname Name
Makes the Erlang runtime system into a distributed node, similar to -name, but the host name portion of the node name Name@Host will be the short name, not fully qualified.
This is sometimes the only way to run distributed Erlang if the DNS (Domain Name System) is not running. There can be no communication between nodes running with the -sname flag and those running with the -name flag, as node names must be unique in distributed Erlang systems.
==========

-kernel inet_default_connect_options [{nodelay,true}] 
-sasl errlog_type error 
-sasl sasl_error_logger false 
-rabbit error_logger {file,"/var/log/rabbitmq/rabbit@Betty.log"} 
-rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@Betty-sasl.log"} 
-rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" 
-rabbit plugins_dir "/usr/local/sbin/../plugins" 
-rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@Betty-plugins-expand" 
-os_mon start_cpu_sup false 
-os_mon start_disksup false 
-os_mon start_memsup false 
-mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@Betty" 
==========
-Application Par Val
Sets the application configuration parameter Par to the value Val for the application Application, see app(4)
and application(3).
==========

-noshell 
-noinput

注:
上面参数中的 emulator flag 均使用的 - 号作为前缀,其在erts-5.9.2中的说明如下: 

It can be noted that there are a small number of "-" flags which now actually are emulator flags

      上面未进行解释说明的 -root /usr/local/lib/erlang 、-progname erl 和 -home /root 均为 user flag 。这些参数为运行时系统自动定义的。其中

  • root         The installation directory of Erlang/OTP, $ROOT.
  • progname     The name of the program which started Erlang.
  • home         The home directory.
上面多处出现 -- 但其后并未指定任何 plain argument 。

© 著作权归作者所有

共有 人打赏支持
摩云飞
粉丝 364
博文 352
码字总数 952690
作品 0
徐汇
程序员
消息中间件—RabbitMQ(集群原理与搭建篇)

摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理 一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试...

癫狂侠 ⋅ 05/25 ⋅ 0

RabbitMQ 内存控制 硬盘控制

一、内存控制: vmmemoryhigh_watermark 该值为内存阈值,默认为0.4。意思为物理内存的40%。40%的内存并不是内存的最大的限制,它是一个发布的节制,当达到40%时Erlang会做GC。最坏的情况是使...

andrewniu ⋅ 05/10 ⋅ 0

Docker下RabbitMQ四部曲之二:细说RabbitMQ镜像制作

本章是《Docker下RabbitMQ四部曲》系列的第二篇,将详细简述Docker下制作RabbitMQ镜像的技术细节,包括以下内容: 1. 列举制作RabbitMQ镜像时用到的所有材料; 2. 编写Dockerfile; 3. 编写容...

boling_cavalry ⋅ 05/13 ⋅ 0

消息中间件—RabbitMQ(集群监控篇1)

摘要:任何没有监控的系统上线,一旦在生产环境发生故障,那么排查和修复问题的及时性将无法得到保证 一、为何要对消息中间件进行监控? 上线的业务系统需要监控,然而诸如消息队列、数据库、...

癫狂侠 ⋅ 05/28 ⋅ 0

rabbitmq 管理及常用命令

关闭:rabbitmqctl stop 若单机有多个实例,则在rabbitmqctlh后加–n 指定名称 开启某个插件:rabbitmq-pluginsenable xxx 关闭某个插件:rabbitmq-pluginsdisablexxx 注意:重启服务器后生效...

yzy121403725 ⋅ 05/21 ⋅ 0

阿里云Kubernetes SpringCloud 实践进行时(2): 分布式配置管理

简介 为了更好地支撑日益增长的庞大业务量,我们常常需要把服务进行整合、拆分,使我们的服务不仅能通过集群部署抵挡流量的冲击,又能根据业务在其上进行灵活的扩展。随着分布式的普及、服务...

osswangxining ⋅ 05/25 ⋅ 0

RabbitMQ学习系列(六): RabbitMQ 高可用集群

前面讲过一些RabbitMQ的安装和用法,也说了说RabbitMQ在一般的业务场景下如何使用。不知道的可以看我前面的博客,http://www.cnblogs.com/zhangweizhong/category/855479.html 本来一直想写一...

andrewniu ⋅ 05/09 ⋅ 0

CentOS7.X安装RabbitMQ-3.6.10

CentOS7.0安装RabbitMQ 安装前的准备 源码安装erlang erlang下载 erlang-20.0 加入环境变量 测试启动erlang 安装RabbitMQ 下载地址 Binary .tar.xz .zip cd /rootwget http://www.rabbitmq.c...

qq2233466866 ⋅ 06/11 ⋅ 0

rabbitmq-server 安装

一,安装rabbitmq-server 1.安装erlang wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm -Uvh erlang-solutions-1.0-1.noarch.rpm rpm --import https:/......

丿小贰丶 ⋅ 05/08 ⋅ 0

rabbitmq单点及集群搭建 与简单使用

单点搭建rabbitmq 安装epel源 yum install -y epel-release.noarch yum clean all && yum makecache fast && yum repolist enabled 安装依赖包 yum install -y erlang xmlto wget 安装 wget......

yr_linux运维 ⋅ 05/29 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

两道面试题,带你解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa{ static { System.out.println("爷爷在静态代码块"); }} cl...

1527 ⋅ 14分钟前 ⋅ 0

SpringCloud(Data Flow)

dataflow-server

赵-猛 ⋅ 24分钟前 ⋅ 0

深入理解Java虚拟机

这本书我读到第8章,之后就是在读不下去了。 读到后面是一种痛苦的体验,太多的东西是不全面的,大量的专有名词是没有解释的,读到最后很多东西仅仅是一个侧面,所以我觉得,这本书不适合初学...

颖伙虫 ⋅ 29分钟前 ⋅ 0

B树和B+树的总结

B树 为什么要B树 磁盘中有两个机械运动的部分,分别是盘片旋转和磁臂移动。盘片旋转就是我们市面上所提到的多少转每分钟,而磁盘移动则是在盘片旋转到指定位置以后,移动磁臂后开始进行数据的...

浮躁的码农 ⋅ 32分钟前 ⋅ 0

NanoPi NEO core/ Ubuntu16.04单网卡配置3个IP地址(2个静态,1个动态)

配置 root@NanoPi-NEO-Core:/etc/network# cat interfacesauto loiface lo inet loopbackallow-hotplug eth0iface eth0 inet static address 172.31.188.249 netmask 255.......

SamXIAO ⋅ 59分钟前 ⋅ 0

三步为你的App集成LivePhoto功能

摘要:LivePhoto是iOS9新推出的一种拍照方式,类似于拍摄Gif图或录制视频片段生成图片。如果没有画面感,可以联想《哈利波特》霍格沃茨城堡的壁画,哈哈,很炫酷有木有,但坑爹的是只有iphone6S以...

壹峰 ⋅ 今天 ⋅ 0

centos7 git安装

由于centos中的源仓库中git不是最新版本,需要进行源码安装。 1、查看yum仓库git信息 [root@iZm5e3d4r5i5ml889vh6esZ zh]# yum info gitLoaded plugins: fastestmirrorLoading mirror s...

xixingzhe ⋅ 今天 ⋅ 0

input file 重复上传同一张图片失效的解决办法

解决办法 方法一:来回切换input[type='file']的type属性值,可以是‘text’,'button','button'....,然后再切换回来‘file’ 方法二:每次取消图片预览后,重置input[type='file']的value的...

时刻在奔跑 ⋅ 今天 ⋅ 0

Mahout推荐算法API详解

前言 用Mahout来构建推荐系统,是一件既简单又困难的事情。简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口;困难是因为我们不了解算法细节,很难去根...

xiaomin0322 ⋅ 今天 ⋅ 0

WampServer默认web服务器根目录位置

安装WampServer之后的web服务器根目录默认位置在WampServer安装目录下的www:

临江仙卜算子 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部