SDK 配置参数推荐

最近更新时间:2024-12-31 17:04:02

我的收藏
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
保持默认。