首页
登录 | 注册

RabbitMQ源码解析前奏--配置

    对于RabbitMQ如果是简单的应用case,则用缺省配置即可,如果是复杂应用,则需要定制服务器配置。下面就开始详细配置之旅吧。
    RabbitMQ通常有以下2种方式来定制Server:

一、环境变量      环境变量初始值通过文件rabbitmq-env.conf来配置,rabbitmq-env.conf默认在/etc/rabbitmq,
且位置不可更改。
  rabbitmq-env.conf中的每项都以 RABBITMQ_为前缀,常用参数如下:
  RABBITMQ_NODE_IP_ADDRESS= //IP地址,空串bind所有地址,指定地址bind指定网络接口
  RABBITMQ_NODE_PORT= //TCP端口号,默认是5672
  RABBITMQ_NODENAME= //节点名称。默认是rabbit
  RABBITMQ_CONFIG_FILE= //配置文件路径
  RABBITMQ_MNESIA_BASE= //mnesia所在路径
  RABBITMQ_LOG_BASE= //日志所在路径
  RABBITMQ_PLUGINS_DIR= //插件所在路径
  
  rabbitmq-env.conf使用原理的更详细信息请看这里,更多环境变量参数请看这里。

二、配置文件
  配置文件即上节rabbitmq-env.conf中通过RABBITMQ_CONFIG_FILE指定的文件加后缀.config。
  一般取名为rabbitmq.config该文件是标准的Erlang配置文件,详细信息请参看这里。
  rabbitmq.config文件中每个参数为一个Erlang tuple,结构为{KeyValue, Keyatom类型, Value为一个term,其中几个关键参数为:
  tcp_listerners设置rabbimq的监听端口,默认为[5672]
  disk_free_limit 磁盘低水位线,若磁盘容量低于指定值则停止接收数据,默认值为{mem_relative, 1.0},即与内存相关联11,也可定制为多少byte.
  vm_memory_high_watermark,设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,即内存总量的40%
  hipe_compile 将部分rabbimq代码用High Performance Erlang compiler编译,可提升性能,该参数是实验性,若出现erlang vm segfaults,应关掉。
  force_fine_statistics,该参数属于rabbimq_management,若为true则进行精细化的统计,但会影响性能。
  frame_max:包大小,若包小则低延迟,若包则高吞吐,默认是131072=128K。
  heartbeat:客户端与服务端心跳间隔,设置为0则关闭心跳,默认是600秒。

  rabbitmq-env.conf和rabbitmq.config默认是不存在的。
  rabbitmq-env.conf需要在缺省位置手动创建一个。
  rabbitmq.config需要在RABBITMQ_CONFIG_FILE指定位置手动创建一个。

  RabbitMQ支持SSL/TLS,具体参见这里。













相关文章

  • Redis源码解析--NET
        关于Redis资料:     要看原滋原味的请点这里,要看有我参与的山寨货请点这里,当然我也不反对看这里.     在接下来的日子里,我会记录下我对Redis源码的一些认识,首先从Event driven programming l ...
  • Redis源码解析--Replication
            Redis的复制功能是基于内存快照即rdb的,也就是说无论使用哪种持久化机制,只要用到了复制功能,master都会产生内存快照即rdb,slave接收rdb以同步数据.Redis完成复制的源码主要分布在Replication ...
  • 微信公众号中看到的一篇文章,挺全的,想要走架构师这条路的程序员可以作为参考学习计划,个人感觉深度有余,广度不足. Java架构师主要需要做哪些工作呢? 1.负责设计和搭建软件系统架构(平台.数据库.接口和应用架构等),解决开发中各种系统架构 ...
  • 高性能集群软件Keepalived之基础知识篇
    一.Keepalived介绍 Keepalived是Linux下一个轻量级的高可用解决方案,它与HeartBeat.RoseHA实现的功能类似,都可以实现服务或者网络的高可用,但是又有差别:HeartBeat是一个专业的.功能完善的高可用软 ...
  • 内核树的建立
    2015/9/13 12:24:31 在进行内核相关的开发时,经常需要根据目标内核在开发平台中建立相应的内核树,那么什么是内核树?为什么需要内核树呢? 一.内核树 简单来说,内核树,就是关于内核中各个目标模块提供的内核API的一个逻辑树:这 ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.014 s.
京ICP备10005923号