TDMQ Pulsar 为您推荐 SDK 常见的参数说明,以及建议配置。
生产者配置
参数 | 描述 | 默认 | 配置建议 |
topicName | 发送消息主题。 | 无 | 必填,由用户自定义。 |
producerName | 生产者名称。 | 集群名-随机字符 | 保持默认,不要设置。 |
sendTimeoutMs | 发送超时。 | 30s | 建议用户根据实际情况调整。通常建议用户将超时时间至少设置为 5s 以上(非独占集群建议设置 10s 以上),防止偶尔网络抖动影响发送成功率。 |
maxPendingMessages | 最大消息发送队列长度。 | 1000 | 保持默认。 |
maxPendingMessagesAcrossPartitions | 所有分区的最大消息发送队列长度。 | 50000 | 保持默认。 |
blockIfQueueFull | 消息发送队列满了之后是否阻塞。 | false | 保持默认。 |
messageRoutingMode | 消息路由模式。 | pulsar.RoundRobinDistribution | 保持默认。 |
hashingScheme | hash 模式。 | HashingScheme.JavaStringHash | 保持默认。 |
CompressionType | 压缩类型,默认不压缩。 | No compression | 保持默认。 |
batchingEnabled | 是否开启批量发送。 | true | 在线场景建议改为 false ,关闭批量发送。批量发送会导致延迟消息、消息过滤等功能失效。 |
batchingMaxPublishDelayMicros | 批量发送最长等待时间。 | TimeUnit.MILLISECONDS.toMicros(1) | 如果采用批量发送,建议调整为10ms 以上。该阈值太小,会造成 producer cpu 负载增加。 |
batchingMaxMessages | 批量发送最大一批消息数量。 | 1000 | 保持默认。 |
batchingMaxBytes | 批量发送最大一批消息长度。 | 128k | 保持默认。 |
消费者配置
参数 | 描述 | 默认值 | 建议 |
topicNames | 订阅主题名列表。 | 无 | 必填,由用户自定义。 |
topicsPattern | 订阅主题模式匹配。 | 无 | 保持默认。 |
subscriptionName | 订阅名。 | 无 | 必填,由用户自定义。 |
subscriptionType | 订阅类型。 | SubscriptionType.Exclusive | SubscriptionType.Shared,必填,建议生产优先选用 Shared 消费模式。 |
receiverQueueSize | 接收队列长度。 | 1000 | 保持默认。 |
acknowledgementsGroupTimeMicros | ack 请求的批量等待时间,设置的过小,会导致集群整体性能下降。 | 100ms | 保持默认。 |
negativeAckRedeliveryDelayMicros | 调用 nack 接口,多久之后重推消息(如果 unack 之后,对应的consumer 实例重启或宕机,消息会被立即重推)。 | 1min | 保持默认。 |
maxTotalReceiverQueueSizeAcrossPartitions | 整个消息接收队列的长度。 | 50000 | 保持默认。 |
consumerName | 消费者名字。 | 集群名-随机字符 | 保持默认,不要设置。 |
ackTimeoutMillis | ack 超时时间,超过该阈值后,消息会被重新消费。0 表示没有超时时间 | 0 | 保持默认。 |
priorityLevel | 消费者优先级,服务端会优先推送消息到优先级高的消费者实例上。数字越小优先级越高,0 表示最高优先级。 | 0 | 保持默认。 |
properties | 消费者配置,方便服务端查询展示。tag 和消息过滤通过这个字段设置过滤规则。 | 无 | 保持默认。 |
subscriptionInitialPosition | 初始化订阅位置,消费者首次消费的位置。默认从最新位置开始消费,主题在开始消费前发送的消息不会被消费。 | SubscriptionInitialPosition.Latest | 保持默认。 |
patternAutoDiscoveryPeriod | 自动感知分区数量变化间隔时间。内部定期获取主题的分区元数据,及时感知主题扩容。 | 1min | 保持默认。 |
regexSubscriptionMode | 主题订阅模式,有三种模式,订阅持久化主题、订阅非持久化主题、订阅所有类型主题,默认订阅持久化主题。 | RegexSubscriptionMode.PersistentOnly | 保持默认。 |
retryEnable | 是否开启重试功能。 | false | 保持默认。按需选择,参考重试和死信功能。 |
deadLetterPolicy | 重试和死信策略。 | 无 | 保持默认。按需选择,参考重试和死信功能。 |
autoUpdatePartitions | 自动更新分区。 | true | 保持默认。 |
replicateSubscriptionState | 开启夸集群同步后,是否同步消费进度。 | false | 保持默认。 |