RocketMQ参数约束和建议

简介: Apache RocketMQ 系统中存在很多自定义参数和资源命名,您在使用 Apache RocketMQ 时建议参考如下说明规范系统设置,避对某些具体参数设置不合理导致应用出现异常。

Topic名称 | 字符建议:字母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 | 无。
ACL Credentials | 字符建议:AK(AccessKey ID)、SK(AccessKey Secret)和Token仅支持字母a~z或A~Z、数字0~9。
长度建议:不超过1024个字符。 | 无。
请求超时时间 | 默认值:3000毫秒。
取值范围:该参数为客户端本地行为,取值范围建议不要超过30000毫秒。 | 请求超时时间是客户端本地同步调用的等待时间,请根据实际应用设置合理的取值,避免线程阻塞时间过长。
消息大小 | 默认值:不超过4 MB。不涉及消息压缩,仅计算消息体body的大小。
取值范围:建议不超过4 MB。 | 消息传输应尽量压缩和控制负载大小,避免超大文件传输。若消息大小不满足限制要求,可以尝试分割消息或使用OSS存储,用消息传输URL。
消息自定义属性 | 字符限制:所有可见字符。
长度建议:属性的Key和Value总长度不超过16 KB。
系统保留属性:不允许使用以下保留属性作为自定义属性的Key。 保留属性Key | 无。
MessageGroup | 字符限制:所有可见字符。
长度建议:1~64字节。 | MessageGroup是顺序消息的分组标识。一般设置为需要保证顺序的一组消息标识,例如订单ID、用户ID等。
消息发送重试次数 | 默认值:3次。
取值范围:无限制。 | 消息发送重试是客户端SDK内置的重试策略,对应用不可见,建议取值不要过大,避免阻塞业务线程。 如果消息达到最大重试次数后还未发送成功,建议业务侧做好兜底处理,保证消息可靠性。
消息消费重试次数 | 默认值:16次。 | 消费重试次数应根据实际业务需求设置合理的参数值,避免使用重试进行无限触发。重试次数过大容易造成系统压力过量增加。
事务异常检查间隔 | 默认值:60秒。 | 事务异常检查间隔指的是,半事务消息因系统重启或异常情况导致没有提交,生产者客户端会按照该间隔时间进行事务状态回查。 间隔时长不建议设置过短,否则频繁的回查调用会影响系统性能。
半事务消息第一次回查时间 | 默认值:取值等于[事务异常检查间隔] * 最大限制:不超过1小时。 | 无。
半事务消息最大超时时长 | 默认值:4小时。 * 取值范围:不支持自定义修改。 | 半事务消息因系统重启或异常情况导致没有提交,生产者客户端会按照事务异常检查间隔时间进行回查,若超过半事务消息超时时长后没有返回结果,半事务消息将会被强制回滚。 您可以通过监控该指标避免异常事务。
PushConsumer本地缓存 | 默认值:
最大缓存数量:1024条。
最大缓存大小:64 M。
取值范围:支持用户自定义设置,无限制。 | 消费者类型为PushConsumer时,为提高消费者吞吐量和性能,客户端会在SDK本地缓存部分消息。缓存的消息的数量和大小应设置在系统内存允许的范围内。
PushConsumer重试间隔时长 | 默认值:
非顺序性投递:间隔时间阶梯变化,具体取值,请参见PushConsumer消费重试策略。
顺序性投递:3000毫秒。 | 无。
PushConsumer消费并发度 | 默认值:20个线程。 | 无。
获取消息最大批次 | 默认值:32条。 | 消费者从服务端获取消息时,一次获取到最大消息条数。建议按照实际业务设置合理的参数值,一次获取消息数量过大容易在消费失败时造成大批量消息重复。
SimpleConsumer最大不可见时间 | 默认值:用户必填参数,无默认值。
取值范围建议:最小10秒;最大12小时。 | 消费不可见时间指的是消息处理+失败后重试间隔的总时长,建议设置时取值比实际需要耗费的时间稍微长一些。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
2月前
|
消息中间件 存储 Dubbo
RocketMQ(二)
RocketMQ(二)
|
3月前
|
消息中间件 Java 大数据
RocketMQ
【8月更文挑战第29天】RocketMQ
75 15
|
6月前
|
消息中间件 监控 API
RocketMQ 5.0
RocketMQ 5.0 是一款分布式消息中间件,由阿里巴巴开源,提供了高性能、高可靠、高可扩展性的消息传递服务。它采用发布/订阅模式,支持多种消息协议,如 JMS、MQTT 等,可用于构建企业级应用的异步消息处理、系统解耦、流量削峰等场景。
155 4
|
4月前
|
消息中间件 Java RocketMQ
【RocketMQ系列九】SpringCloudStream整合RocketMQ
【RocketMQ系列九】SpringCloudStream整合RocketMQ
376 1
|
4月前
|
消息中间件 存储 Java
【RocketMQ系列一】初识RocketMQ
【RocketMQ系列一】初识RocketMQ
48 1
|
6月前
|
消息中间件 Apache RocketMQ
RocketMQ
RocketMQ “【5月更文挑战第24天】”
48 2
|
5月前
|
消息中间件 Java API
详解RocketMQ使用
详解RocketMQ使用
59 0
|
6月前
|
消息中间件 存储 Cloud Native
RocketMQ的初步认识
RocketMQ的初步认识
55 0
|
消息中间件 存储 JSON
RocketMQ使用总结
RocketMQ使用总结
181 0
|
消息中间件 RocketMQ
对于RocketMQ的不同场景
对于RocketMQ的不同场景
91 2