字段详细信息

  • producerGroup

    private String producerGroup

    生产者的分组名称。相同的分组名称表明生产者实例在概念上归属于同一分组。这对事务消息十分重要,如果原始生产者在事务之后崩溃,那么broker可以联系同一生产者分组的不同生产者实例来提交或回滚事务。

    默认值:DEFAULT_PRODUCER

    注意: 由数字、字母、下划线、横杠(-)、竖线(|)或百分号组成;不能为空;长度不能超过255。

  • defaultMQProducerImpl

    protected final transient DefaultMQProducerImpl defaultMQProducerImpl

    生产者的内部默认实现,在构造生产者时内部自动初始化,提供了大部分方法的内部实现。

  • createTopicKey

    private String createTopicKey = MixAll.AUTO_CREATE_TOPIC_KEY_TOPIC

    在发送消息时,自动创建服务器不存在的topic,需要指定Key,该Key可用于配置发送消息所在topic的默认路由。

    默认值:TBW102

    建议:测试或者demo使用,生产环境下不建议打开自动创建配置。

  • defaultTopicQueueNums

    private volatile int defaultTopicQueueNums = 4

    创建topic时默认的队列数量。

    默认值:4

  • sendMsgTimeout

    private int sendMsgTimeout = 3000

    发送消息时的超时时间。

    默认值:3000,单位:毫秒

    建议:不建议修改该值,该值应该与broker配置中的sendTimeout一致,发送超时,可临时修改该值,建议解决超时问题,提高broker集群的Tps。

  • compressMsgBodyOverHowmuch

    private int compressMsgBodyOverHowmuch = 1024 * 4

    压缩消息体阈值。大于4K的消息体将默认进行压缩。

    默认值:1024 * 4,单位:字节

    建议:可通过DefaultMQProducerImpl.setZipCompressLevel方法设置压缩率(默认为5,可选范围[0,9]);可通过DefaultMQProducerImpl.tryToCompressMessage方法测试出compressLevel与compressMsgBodyOverHowmuch最佳值。

  • retryTimesWhenSendFailed

    private int retryTimesWhenSendFailed = 2

    同步模式下,在返回发送失败之前,内部尝试重新发送消息的最大次数。

    默认值:2,即:默认情况下一条消息最多会被投递3次。

    注意:在极端情况下,这可能会导致消息的重复。

  • retryTimesWhenSendAsyncFailed

    private int retryTimesWhenSendAsyncFailed = 2

    异步模式下,在发送失败之前,内部尝试重新发送消息的最大次数。

    默认值:2,即:默认情况下一条消息最多会被投递3次。

    注意:在极端情况下,这可能会导致消息的重复。

  • retryAnotherBrokerWhenNotStoreOK

    private boolean retryAnotherBrokerWhenNotStoreOK = false

    同步模式下,消息保存失败时是否重试其他broker。

    默认值:false

    注意:此配置关闭时,非投递时产生异常情况下,会忽略retryTimesWhenSendFailed配置。

  • maxMessageSize

    private int maxMessageSize = 1024 * 1024 * 4

    消息的最大大小。当消息题的字节数超过maxMessageSize就发送失败。

    默认值:1024 * 1024 * 4,单位:字节

  • traceDispatcher

    private TraceDispatcher traceDispatcher = null

    在开启消息追踪后,该类通过hook的方式把消息生产者,消息存储的broker和消费者消费消息的信息像链路一样记录下来。在构造生产者时根据构造入参enableMsgTrace来决定是否创建该对象。