RocketMQ4.3.x 史上配置最全详解,没有之一
最近整理了RocketMQ的配置参数一部分参考rocketmq技术内幕,一部分自己看源码猜测,有表述不清楚或不正确请广大网友指正
这里应该是最全的配置解析了,搞了2天。以后查询就好办了,仅此贡献给广大网友方便查询。
其中有很多我也没有搞明白,Rocket源码太多,读起来比较吃力,有很多都是见名知意。

| NameServer配置属性 | |||
| 参数名 | 参数类型 | 描述 | 默认参数(时间为单位ms,数据单位为byte) |
| rocketmqHome | String | RockerMQ主目录,默认用户主目录 | |
| namesrvAddr | String | NameServer地址 | |
| kvConfigPath | String | kv配置文件路径,包含顺序消息主题的配置信息 | |
| configStorePath | String | NameServer配置文件路径,建议使用-c指定NameServer配置文件路径 | |
| clusterTest | boolean | 是否开启集群测试,默认为false | |
| orderMessageEnable | boolean | 是否支持顺序消息,默认为false | |
| NameServer、Broker、filter网络配置属性 | |||
| accessMessageInMemoryMaxRatio | int | 访问消息在内存中比率,默认为40 | 40 |
| adminBrokerThreadPoolNums | int | 服务端处理控制台管理命令线程池线程数量 | 16 |
| autoCreateSubscriptionGroup | boolean | 是否自动创建消费组 | true |
| autoCreateTopicEnable | boolean | 是否自动创建主题 | true |
| bitMapLengthConsumeQueueExt | int | ConsumeQueue扩展过滤bitmap大小 | 112 |
| brokerClusterName | String | Broker集群名称 | TestCluster |
| brokerFastFailureEnable | boolean | 是否支持broker快速失败 如果为true表示会立即清除发送消息线程池,消息拉取线程池中排队任务 ,直接返回系统错误 | true |
| brokerId | int | brokerID 0表示主节点 大于0表示从节点 | 0 |
| brokerIP1 | String | Broker服务地址 | |
| brokerIP2 | String | BrokerHAIP地址,供slave同步消息的地址 | |
| brokerName | String | Broker服务器名称morning服务器hostname | broker-a |
| brokerPermission | int | Broker权限 默认为6表示可读可写 | 6 |
| brokerRole | enum | broker角色,分为 ASYNC_MASTER SYNC_MASTER, SLAVE | ASYNC_MASTER |
| brokerTopicEnable | boolean | broker名称是否可以用做主体使用 | true |
| channelNotActiveInterval | long | 60000 | |
| checkCRCOnRecover | boolean | 文件恢复时是否校验CRC | true |
| cleanFileForciblyEnable | boolean | 是否支持强行删除过期文件 | true |
| cleanResourceInterval | int | 清除过期文件线程调度频率 | 10000 |
| clientAsyncSemaphoreValue | int | 65535 | |
| clientCallbackExecutorThreads | int | 8 | |
| clientChannelMaxIdleTimeSeconds | int | 120 | |
| clientCloseSocketIfTimeout | boolean | false | |
| clientManagerThreadPoolQueueCapacity | int | 客户端管理线程池任务队列初始大小 | 1000000 |
| clientManageThreadPoolNums | int | 服务端处理客户端管理(心跳 注册 取消注册线程数量) | 32 |
| clientOnewaySemaphoreValue | int | 65535 | |
| clientPooledByteBufAllocatorEnable | boolean | false | |
| clientSocketRcvBufSize | long | 客户端socket接收缓冲区大小 | 131072 |
| clientSocketSndBufSize | long | 客户端socket发送缓冲区大小 | 131072 |
| clientWorkerThreads | int | 4 | |
| clusterTopicEnable | boolean | 集群名称是否可用在主题使用 | true |
| commercialBaseCount | int | 1 | |
| commercialBigCount | int | 1 | |
| commercialEnable | boolean | true | |
| commercialTimerCount | int | 1 | |
| commercialTransCount | int | 1 | |
| commitCommitLogLeastPages | int | 一次提交至少需要脏页的数量,默认4页,针对 commitlog文件 | 4 |
| commitCommitLogThoroughInterval | int | Commitlog两次提交的最大间隔,如果超过该间隔,将忽略commitCommitLogLeastPages直接提交 | 200 |
| commitIntervalCommitLog | int | commitlog提交频率 | 200 |
| compressedRegister | boolean | false | |
| connectTimeoutMillis | long | 链接超时时间 | 3000 |
| consumerFallbehindThreshold | long | 消息消费堆积阈值默认16GB在disableConsumeifConsumeIfConsumerReadSlowly为true时生效 | 17179869184 |
| consumerManagerThreadPoolQueueCapacity | int | 消费管理线程池任务队列大小 | 1000000 |
| consumerManageThreadPoolNums | int | 服务端处理消费管理 获取消费者列表 更新消费者进度查询消费进度等 | 32 |
| debugLockEnable | boolean | 是否支持 PutMessage Lock锁打印信息 | false |
| defaultQueryMaxNum | int | 查询消息默认返回条数,默认为32 | 32 |
| defaultTopicQueueNums | int | 主体在一个broker上创建队列数量 | 8 |
| deleteCommitLogFilesInterval | int | 删除commitlog文件的时间间隔,删除一个文件后等一下再删除一个文件 | 100 |
| deleteConsumeQueueFilesInterval | int | 删除consumequeue文件时间间隔 | 100 |
| deleteWhen | String | 磁盘文件空间充足情况下,默认每天什么时候执行删除过期文件,默认04表示凌晨4点 | 04 |
| destroyMapedFileIntervalForcibly | int | 销毁MappedFile被拒绝的最大存活时间,默认120s。清除过期文件线程在初次销毁mappedfile时,如果该文件被其他线程引用,引用次数大于0.则设置MappedFile的可用状态为false,并设置第一次删除时间,下一次清理任务到达时,如果系统时间大于初次删除时间加上本参数,则将ref次数一次减1000,知道引用次数小于0,则释放物理资源 | 120000 |
| disableConsumeIfConsumerReadSlowly | boolean | 如果消费组消息消费堆积是否禁用该消费组继续消费消息 | false |
| diskFallRecorded | boolean | 是否统计磁盘的使用情况,默认为true | true |
| diskMaxUsedSpaceRatio | int | commitlog目录所在分区的最大使用比例,如果commitlog目录所在的分区使用比例大于该值,则触发过期文件删除 | 75 |
| duplicationEnable | boolean | 是否允许重复复制,默认为 false | false |
| enableCalcFilterBitMap | boolean | 是否开启比特位映射,这个属性不太明白 | false |
| enableConsumeQueueExt | boolean | 是否启用ConsumeQueue扩展属性 | false |
| enablePropertyFilter | boolean | 是否支持根据属性过滤 如果使用基于标准的sql92模式过滤消息则改参数必须设置为true | false |
| endTransactionPoolQueueCapacity | int | 处理提交和回滚消息线程池线程队列大小 | 100000 |
| endTransactionThreadPoolNums | int | 处理提交和回滚消息线程池 | 24 |
| expectConsumerNumUseFilter | boolean | 布隆过滤器参数 | 32 |
| fastFailIfNoBufferInStorePool | boolean | 从 transientStorepool中获取 ByteBuffer是否支持快速失败 | false |
| fetchNamesrvAddrByAddressServer | boolean | 是否支持从服务器获取nameServer | false |
| fileReservedTime | String | 文件保留时间,默认72小时,表示非当前写文件最后一次更新时间加上filereservedtime小与当前时间,该文件将被清理 | 120 |
| filterDataCleanTimeSpan | long | 清除过滤数据的时间间隔 | 86400000 |
| filterServerNums | int | broker服务器过滤服务器数量 | 0 |
| filterSupportRetry | boolean | 消息过滤是否支持重试 | false |
| flushCommitLogLeastPages | int | 一次刷盘至少需要脏页的数量,针对commitlog文件 | 4 |
| flushCommitLogThoroughInterval | int | commitlog两次刷盘的最大间隔,如果超过该间隔,将fushCommitLogLeastPages要求直接执行刷盘操作 | 10000 |
| flushCommitLogTimed | boolean | 表示await方法等待FlushIntervalCommitlog,如果为true表示使用Thread.sleep方法等待 | false |
| flushConsumeQueueLeastPages | int | 一次刷盘至少需要脏页的数量,默认2页,针对 Consume文件 | 2 |
| flushConsumeQueueThoroughInterval | int | Consume两次刷盘的最大间隔,如果超过该间隔,将忽略 | 60000 |
| flushConsumerOffsetHistoryInterval | int | fushConsumeQueueLeastPages直接刷盘 | 60000 |
| flushConsumerOffsetInterval | int | 持久化消息消费进度 consumerOffse.json文件的频率ms | 5000 |
| flushDelayOffsetInterval | long | 延迟队列拉取进度刷盘间隔。默认10s | 10000 |
| flushDiskType | enum | 刷盘方式,默认为 ASYNC_FLUSH(异步刷盘),可选值SYNC_FLUSH(同步刷盘) | ASYNC_FLUSH |
| flushIntervalCommitLog | int | commitlog刷盘频率 | 500 |
| flushIntervalConsumeQueue | int | consumuQueue文件刷盘频率 | 1000 |
| flushLeastPagesWhenWarmMapedFile | int | 用字节0填充整个文件的,每多少页刷盘一次。默认4096页,异步刷盘模式生效 | 4096 |
| forceRegister | boolean | 是否强制注册 | true |
| haHousekeepingInterval | int | Master与save长连接空闲时间,超过该时间将关闭连接 | 20000 |
| haListenPort | int | Master监听端口,从服务器连接该端口,默认为10912 | 10912 |
| haMasterAddress | String | Master服务器IP地址与端口号 | |
| haSendHeartbeatInterval | int | Master与Slave心跳包发送间隔 | 5000 |
| haSlaveFallbehindMax | int | 允许从服务器落户的最大偏移字节数,默认为256M。超过该值则表示该Slave不可用 | 268435456 |
| haTransferBatchSize | int | 一次HA主从同步传输的最大字节长度,默认为32K | 32768 |
| heartbeatThreadPoolNums | int | 心跳线程池线程数 | 8 |
| heartbeatThreadPoolQueueCapacity | int | 心跳线程队列数量 | 50000 |
| highSpeedMode | boolean | 当前版本未使用 | false |
| listenPort | int | 服务端监听端口 | 10911 |
| longPollingEnable | boolean | 是否开启长轮训 | true |
| mapedFileSizeCommitLog | int | 单个conmmitlog文件大小默认1GB | 1073741824 |
| mapedFileSizeConsumeQueue | int | 单个consumequeue文件大小默认30W*20表示单个Consumequeue文件中存储30W个ConsumeQueue条目 | 6000000 |
| mappedFileSizeConsumeQueueExt | int | ConsumeQueue扩展文件大小默认48MB | 50331648 |
| maxDelayTime | int | 当前版本未使用 | 40 |
| maxErrorRateOfBloomFilter | int | 布隆过滤器参数 | 20 |
| maxHashSlotNum | int | 单个索引文件hash槽的个数,默认为五百万 | 5000000 |
| maxIndexNum | int | 单个索引文件索引条目的个数,默认为两千万 | 20000000 |
| maxMessageSize | int | 默认允许的最大消息体默认4M | 4194304 |
| maxMsgsNumBatch | int | 一次查询消息最大返回消息条数,默认64条 | 64 |
| maxTransferBytesOnMessageInDisk | 一次服务消息端消息拉取,消息在磁盘中传输允许的最大字节 | 65536 | |
| maxTransferBytesOnMessageInMemory | int | 一次服务端消息拉取,消息在内存中传输允许的最大传输字节数默认256kb | 262144 |
| maxTransferCountOnMessageInDisk | int | 一次消息服务端消息拉取,消息在磁盘中传输允许的最大条数,默认为8条 | 8 |
| maxTransferCountOnMessageInMemory | int | 一次服务消息拉取,消息在内存中传输运行的最大消息条数,默认为32条 | 32 |
| messageDelayLevel | String | 延迟队列等级(s=秒,m=分,h=小时) | 1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h |
| messageIndexEnable | boolean | 是否支持消息索引文件 | true |
| messageIndexSafe | boolean | 消息索引是否安全,默认为 false,文件恢复时选择文件检测点(commitlog.consumeque)的最小的与文件最后更新对比,如果为true,文件恢复时选择文件检测点保存的索引更新时间作为对比 | false |
| messageStorePlugIn | String | 消息存储插件地址默认为空字符串 | |
| namesrvAddr | String | nameServer地址 | |
| notifyConsumerIdsChangedEnable | 消费者数量变化后是否立即通知RebalenceService线程,以便马上进行重新负载 | true | |
| offsetCheckInSlave | boolean | 从服务器是否坚持 offset检测 | false |
| osPageCacheBusyTimeOutMills | long | putMessage锁占用超过该时间,表示 PageCache忙 | 1000 |
| pullMessageThreadPoolNums | int | 服务端处理消息拉取线程池线程数量 默认为16加上当前操作系统CPU核数的两倍 | 32 |
| pullThreadPoolQueueCapacity | int | 消息拉去线程池任务队列初始大小 | 100000 |
| putMsgIndexHightWater | int | 当前版本未使用 | 600000 |
| queryMessageThreadPoolNums | int | 服务端处理查询消息线程池数量默认为8加上当前操作系统CPU核数的两倍 | 16 |
| queryThreadPoolQueueCapacity | int | 查询消息线程池任务队列初始大小 | 20000 |
| redeleteHangedFileInterval | int | 重试删除文件间隔,配合destorymapedfileintervalforcibly | 120000 |
| regionId | String | 消息区域 | DefaultRegion |
| registerBrokerTimeoutMills | int | 注册broker超时时间 | 6000 |
| registerNameServerPeriod | int | broker注册频率 大于1分钟为1分钟小于10秒为10秒 | 30000 |
| rejectTransactionMessage | boolean | 是否拒绝事物消息 | false |
| rocketmqHome | String | RocketMQ主目录 | /home/rocketmq/rocketmq-all-4.3.2-bin-release |
| sendMessageThreadPoolNums | int | 服务端处理消息发送线程池数量 | 1 |
| sendThreadPoolQueueCapacity | int | 消息发送线程池任务队列初始大小 | 10000 |
| serverAsyncSemaphoreValue | int | 异步消息发送最大并发度 | 64 |
| serverCallbackExecutorThreads | int | netty public任务线程池个数,netty网络设计没根据业务类型会创建不同线程池毛笔如处理发送消息,消息消费心跳检测等。如果业务类型(RequestCode)未注册线程池,则由public线程池执行 | 0 |
| serverChannelMaxIdleTimeSeconds | int | 网络连接最大空闲时间。如果链接空闲时间超过此参数设置的值,连接将被关闭 | 120 |
| serverOnewaySemaphoreValue | int | send oneway消息请求并发度 | 256 |
| serverPooledByteBufAllocatorEnable | boolean | ByteBuffer是否开启缓存 | true |
| serverSelectorThreads | int | IO线程池线程个数,主要是NameServer.broker端解析请求,返回相应的线程个数,这类县城主要是处理网络请求的,解析请求包。然后转发到各个业务线程池完成具体的业务无操作,然后将结果在返回调用方 | 3 |
| serverSocketRcvBufSize | int | netty网络socket接收缓存区大小16MB | 131072 |
| serverSocketSndBufSize | int | netty网络socket发送缓存区大小16MB | 131072 |
| serverWorkerThreads | int | netty业务线程池个数 | 8 |
| shortPollingTimeMills | long | 短轮训等待时间 | 1000 |
| slaveReadEnable | boolean | 从节点是否可读 | false |
| startAcceptSendRequestTimeStamp | int | 0 | |
| storePathCommitLog | String | Commitlog存储目录默认为${storePathRootDir}/commitlog | /home/rocketmq/store/commitlog |
| storePathRootDir | String | broker存储目录 默认为用户的主目录/store | /home/rocketmq/store |
| syncFlushTimeout | long | 同步刷盘超时时间 | 5000 |
| traceOn | boolean | true | |
| transactionCheckInterval | long | 事物回查周期 | 60000 |
| transactionCheckMax | int | 事物回查次数 | 15 |
| transactionTimeOut | long | 事物回查超时时间 | 6000 |
| transferMsgByHeap | boolean | 消息传输是否使用堆内存 | true |
| transientStorePoolEnable | boolean | Commitlog是否开启 transientStorePool机制,默认为 false | false |
| transientStorePoolSize | int | transientStorePool中缓存 ByteBuffer个数,默认5个 | 5 |
| useEpollNativeSelector | boolean | 是否启用Epoll IO模型。Linux环境建议开启 | false |
| useReentrantLockWhenPutMessage | boolean | 消息存储到commitlog文件时获取锁类型,如果为true使用ReentrantLock否则使用自旋锁 | false |
| useTLS | boolean | 是否使用安全传输层协议 | false |
| waitTimeMillsInHeartbeatQueue | long | 清理broker心跳线程等待时间 | 31000 |
| waitTimeMillsInPullQueue | long | 清除消息拉取线程池任务队列的等待时间。如果系统时间减去任务放入队列中的时间小于waitTimeMillsInPullQueue,本次请求任务暂时不移除该任务 | 5000 |
| waitTimeMillsInSendQueue | long | 清除发送线程池任务队列的等待时间。如果系统时间减去任务放入队列中的时间小于waitTimeMillsInSendQueue,本次请求任务暂时不移除该任务 | 200 |
| waitTimeMillsInTransactionQueue | long | 清理提交和回滚消息线程队列等待时间 | 3000 |
| warmMapedFileEnable | boolean | 是否温和地使用 MappedFile如果为true,将不强制将内存映射文件锁定在内存中 | false |
| connectWhichBroker | String | FilterServer连接的Broker地址 | |
| filterServerIP | String | FilterServerIP地址,默认为本地服务器IP | |
| compressMsgBodyOverHowmuch | int | 如果消息Body超过该值则启用 | |
| zipCompresslevel | int | Zip压缩方式,默认为5,详细定义请参考java.util.Deflate中的定义 | |
| clientUploadFilterClassEnable | boolean | 是否支持客户端上传 FilterClass代码 | |
| filterClassRepertoryUrl | String | filterClass服务地址,如果 clientUploadFilterClassEnable为false,则需要提供一个地址从该服务器获取过滤类的代码 | |
| fsServerAsyncSemaphorevalue | int | FilterServer异步请求并发度,默认为2048 | |
| fsServerCallbackExecutorThreads | int | 处理回调任务的线程池数量,默认为64 | |
| fsServerWorkerThreads | int | 远程服务调用线程池数量,默认为64 | |

RocketMQ4.3.x 史上配置最全详解,没有之一的更多相关文章
- 【openCV学习笔记】在Mac上配置openCV步骤详解
(1)安装Homebrew:(需要Ruby) 注:因为snow leopard 以后已经自带Ruby了,所有可以不用自己安装Ruby. 看一下Homebrew的官网: http://mxcl.gith ...
- Linux中redis安装配置及使用详解
Linux中redis安装配置及使用详解 一. Redis基本知识 1.Redis 的数据类型 字符串 , 列表 (lists) , 集合 (sets) , 有序集合 (sorts sets) , 哈 ...
- MyBatis 一级缓存、二级缓存全详解(一)
目录 MyBatis 一级缓存.二级缓存全详解(一) 什么是缓存 什么是MyBatis中的缓存 MyBatis 中的一级缓存 初探一级缓存 探究一级缓存是如何失效的 一级缓存原理探究 还有其他要补充的 ...
- SPRINGBOOT注解最全详解(
# SPRINGBOOT注解最全详解(整合超详细版本) 使用注解的优势: 1.采用纯java代码,不在需要配置繁杂的xml文件 ...
- Maven配置文件POM属性最全详解
注:本文内容来源于: BlueKitty1210 <Maven配置文件POM属性最全详解> <project xmlns="http://maven.apache.org/ ...
- 超全详解Java开发环境搭建
摘自:https://www.cnblogs.com/wangjiming/p/11278577.html 超全详解Java开发环境搭建 在项目产品开发中,开发环境搭建是软件开发的首要阶段,也是必 ...
- CentOS 6.3下Samba服务器的安装与配置方法(图文详解)
这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下 一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...
- 【iOS 使用github上传代码】详解
[iOS 使用github上传代码]详解 一.github创建新工程 二.直接添加文件 三.通过https 和 SSH 操作两种方式上传工程 3.1https 和 SSH 的区别: 3.1.1.前者可 ...
- java的集合框架最全详解
java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...
随机推荐
- 微信小程序 人脸识别登陆模块
微信小程序---人脸识别登陆的实现 关键词:微信小程序 人脸识别 百度云接口 前言 这是一篇关于一个原创微信小程序开发过程的原创文章.涉及到的核心技术是微信小程序开发方法和百度云人脸识别接口.小程序的 ...
- Android SQLite 数据库学习
SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本.它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需 ...
- mysql关联表更改表多个字段值
关联表更改某一个字段值:更改部分数据,外层where条件控制更改记录的数量 BEGIN; " ; "; ROLLBACK; -- COMMIT; 关联表更改某一个字段值:更改全部记 ...
- 说一下Dubbo 的工作原理?注册中心挂了可以继续通信吗?
面试题 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程? 面试官心理分析 MQ.ES.Redis.Dubbo,上来先问你一些思考性的问题.原理,比如 kaf ...
- Java数据结构和算法 - 链表
Q: 为什么要引入链表的概念?它是解决什么问题的? A: 数组作为数据存储结构有一定的缺陷,在无序数组中,搜索是低效的:而在有序数组中,插入效率又很低:不管在哪一个数组中删除效率都很低:况且一个数组创 ...
- Mac电脑上一款非常时尚高清的动态壁纸Living Wallpaper HD
很多朋友Mac电脑上都喜欢用动态壁纸,Living Wallpaper HD是本人尝试的一款非常不错的高清动态壁纸.有时钟.天气等各种组建,非常时尚美观. Living Wallpaper HD下载地 ...
- 第一周 IP通信基础学习回顾
这周的课程首先让我们学习了计算机网络概述,了解计算机网络的定义和功能分别是:资源共享,信息传输与集中处理,负载均衡与分布处理,综合信息服务.同时也对计算机网络的演进,计算机网络的分类,计算机网络的性能 ...
- 一次 HashSet 所引起的并发问题
背景 上午刚到公司,准备开始一天的摸鱼之旅时突然收到了一封监控中心的邮件. 心中暗道不好,因为监控系统从来不会告诉我应用完美无 bug,其实系统挺猥琐. 打开邮件一看,果然告知我有一个应用的线程池队列 ...
- centos7 安装 smplayer
How to setup multimedia on CentOS 7 You will need to also install the EPEL repository as nux-dextop ...
- 从零开始学安全(四十三)●Wireshark分析ICMP(IP)协议
存活时间与IP分片 这里我们首先来研究一下关于IP协议的两个非常重要的概念:存活时间与IP分片.存活时间(TTL,Time to Live)用于定义数据包的生存周期,也就是在该数据包被丢弃之前,所能够 ...