参数限制与建议
Apache RocketMQ 系统中包含许多自定义参数和资源名称。建议您按照以下说明设置系统,以避免因参数设置不当而导致的应用程序异常。
| 参数 | 建议范围 | 说明 |
|---|---|---|
| 主题名称 | 字符建议:a~z A~Z 0~9 (_)(-)(%) 建议长度:1~64 个字符 系统保留字符:Topic 名称不允许使用以下保留字符或具有特殊前缀的字符。 保留字符:TBW102 _ BenchmarkTest _ SELF_TEST_TOPIC _ OFFSET_MOVED_EVENT _ SCHEDULE_TOPIC_XXXX _ RMQ_SYS_TRANS_HALF_TOPIC _ RMQ_SYS_TRACE_TOPIC _ RMQ_SYS_TRANS_OP_HALF_TOPIC 保留前缀字符:_ rmq_sys_ %RETRY%_ %DLQ%_ rocketmq-broker- | Topic 名称应使用简短、通用的字符,避免使用特殊字符。特殊字符可能导致系统解析异常。如果字符过长,消息可能会被拒绝。 |
| ConsumerGroup 名称 | 字符建议:a~z A~Z 0~9 (_)(-)(%) 建议长度:1~64 个字符 系统保留字符:ConsumerGroup 名称不允许使用以下保留字符或具有特殊前缀的字符。 保留字符:_ DEFAULT_CONSUMER _ DEFAULT_PRODUCER _ TOOLS_CONSUMER _ FILTERSRV_CONSUMER _ __MONITOR_CONSUMER _ CLIENT_INNER_PRODUCER _ SELF_TEST_P_GROUP _ SELF_TEST_C_GROUP _ CID_ONS-HTTP-PROXY _ CID_ONSAPI_PERMISSION _ CID_ONSAPI_OWNER _ CID_ONSAPI_PULL _ CID_RMQ_SYS_TRANS _ 保留字符 * CID_RMQ_SYS_ * CID_HOUSEKEEPING | null |
| ACL 凭证 | 字符建议:AK(AccessKey ID)、SK(AccessKey Secret)和 Token 仅支持 a~z A~Z 0~9 建议长度:少于 1024 个字符。 | null |
| 请求超时时间 | 默认值:3000ms。 | 请求超时时间是客户端进行本地同步调用的等待时间。根据实际应用设置合理的值,以避免线程阻塞时间过长。 |
| 最大消息大小 | 默认值:4 MB。不涉及消息压缩,仅计算消息体的大小。 取值范围:建议小于 4 MB。 | 消息传输应进行压缩并控制负载,以避免传输大文件。 |
| 消息自定义属性 | 字符限制:所有可见字符。 建议长度:所有 Key 和 Value 的总和小于 16KB。 系统保留属性:以下保留属性不允许作为自定义属性的 Key。系统保留 Key | null |
| MessageGroup | 字符限制:所有可见字符。 建议长度:1~64. | 通常,messageGroup 设置为一组需要保证顺序的消息标识符,例如订单、用户等。 |
| 最大消息发送重试次数 | 默认值:3 次。 取值范围:无限制。 | 发送重试策略对应用程序是透明的。建议设置较小的值,以避免阻塞服务线程。如果达到最大重试次数后消息仍未发送成功,建议服务端执行回溯以确保消息可靠性。 |
| 最大消息消费重试次数 | 默认值:16 次。 | 根据实际业务需求设置合理的消费重试次数,以避免无限制的消费重试。如果重试次数过多,会增加系统压力。 |
| 事务异常检查间隔 | 默认值:60 秒。 | 事务异常检查间隔是指因系统重启或异常情况导致半事务消息未提交的检查间隔。生产者客户端将根据此间隔检查事务状态。不要将间隔设置得太短,否则频繁的回调调用可能会影响系统性能。 |
| 半事务消息首次回调时间 | 默认值:参考[事务异常检查间隔]* 最大检查次数 | null |
| 半事务消息最大超时时间 | 默认值:4 小时。 | 如果半事务消息因系统重启或异常情况未提交,生产者客户端将根据事务异常检查间隔进行回查。如果在半事务消息的超时时间内未返回结果,半事务消息将被强制回滚。 |
| PushConsumer SDK 缓存 | 默认值: _ 最大缓存数量:1024 _ 最大缓存大小:64 M。 | 缓存消息的数量和大小应设置为系统内存允许的限制范围内。 |
| PushConsumer 重试间隔 | 默认值: _ 并发投递类型:间隔时间呈阶梯状变化。 _ FIFO 投递类型:3000 ms。 | null |
| PushConsumer 消费线程数 | 默认值:20 | null |
| 获取消息批量大小 | 默认值:32 | 消费者一次从服务器获取的最大消息数量。建议根据实际业务设置合适的参数值。如果一次获取的消息数量过多,消费失败时可能会导致大量消息重复。 |
| SimpleConsumer 最大不可见时间 | 默认值:此参数为必填项,无默认值。 建议范围:10 秒至 12 小时。 | 消费不可见时间是指从消息处理到失败后重试之间的总时间。建议将此值设置为略长于实际处理时间。 |