SpringCloud Kafka消费者Properties
以下属性仅适用于Kafka使用者,并且必须以spring.cloud.stream.kafka.bindings.<channelName>.consumer.
为前缀。
- 管理员配置
供应主题时使用的Kafka主题属性中的
Map
(例如,spring.cloud.stream.kafka.bindings.input.consumer.admin.configuration.message.format.version=0.9.0.0
默认值:无。
- 管理员副本分配
副本分配的Map <Integer,List <Integer >>,键为分区,值为分配。在配置新主题时使用。请参阅
kafka-clients
jar中的NewTopic
Javadocs。默认值:无。
- 管理员复制因子
设置主题时要使用的复制因子。覆盖活页夹范围的设置。忽略是否存在
replicas-assignments
。默认值:无(使用资料夹范围的默认值1)。
- autoRebalanceEnabled
当为
true
时,主题分区将在使用者组的成员之间自动重新平衡。当false
时,将为每个使用者分配基于spring.cloud.stream.instanceCount
和spring.cloud.stream.instanceIndex
的固定分区集合。这要求在每个启动的实例上同时设置spring.cloud.stream.instanceCount
和spring.cloud.stream.instanceIndex
属性。在这种情况下,spring.cloud.stream.instanceCount
属性的值通常必须大于1。默认值:
true
。- ackEachRecord
当
autoCommitOffset
为true
时,此设置指示在处理每条记录后是否提交偏移量。默认情况下,在处理consumer.poll()
返回的记录批次中的所有记录之后,将提交偏移量。可以使用max.poll.records
Kafka属性控制轮询返回的记录数,该属性是通过使用者configuration
属性设置的。将此设置为true
可能会导致性能下降,但是这样做会减少发生故障时重新传送记录的可能性。另外,请参见活页夹requiredAcks
属性,该属性还影响落实偏移量的性能。默认值:
false
。- autoCommitOffset
处理消息后是否自动提交偏移量。如果设置为
false
,则入站消息中将出现带有类型为org.springframework.kafka.support.Acknowledgment
头的键kafka_acknowledgment
的头。应用程序可以使用此标头来确认消息。有关详细信息,请参见示例部分。当此属性设置为false
时,Kafka活页夹将ack模式设置为org.springframework.kafka.listener.AbstractMessageListenerContainer.AckMode.MANUAL
,应用程序负责确认记录。另请参阅ackEachRecord
。默认值:
true
。- autoCommitOnError
仅在
autoCommitOffset
设置为true
时有效。如果设置为false
,它将抑制导致错误的消息的自动提交,仅对成功的消息进行提交。如果持续出现故障,它允许流从上次成功处理的消息自动重播。如果设置为true
,它将始终自动提交(如果启用了自动提交)。如果未设置(默认值),则其有效值与enableDlq
相同,如果将错误消息发送到DLQ,则自动提交错误消息,否则不提交。默认值:未设置。
- resetOffsets
是否将使用者的偏移量重置为startOffset提供的值。
默认值:
false
。- startOffset
新组的起始偏移量。允许的值:
earliest
和latest
。如果为消费者“绑定”显式设置了消费者组(通过spring.cloud.stream.bindings.<channelName>.group
),则“ startOffset”设置为earliest
。否则,将anonymous
消费者组的值设置为latest
。另请参见resetOffsets
(在此列表的前面)。默认值:null(等于
earliest
)。- enableDlq
设置为true时,它将为使用者启用DLQ行为。默认情况下,导致错误的消息将转发到名为
error.<destination>.<group>
的主题。可以通过设置dlqName
属性来配置DLQ主题名称。对于错误数量相对较小并且重放整个原始主题可能太麻烦的情况,这为更常见的Kafka重播方案提供了一个替代选项。有关更多信息,请参见“ Dead-Letter主题处理”处理。从2.0版开始,发送到DLQ主题的消息将通过以下标头得到增强:x-original-topic
,x-exception-message
和x-exception-stacktrace
为byte[]
。 当destinationIsPattern
为true
时不允许使用。默认值:
false
。- 组态
使用包含通用Kafka使用者属性的键/值对进行映射。
默认值:空地图。
- dlqName
接收错误消息的DLQ主题的名称。
默认值:null(如果未指定,则导致错误的消息将转发到名为
error.<destination>.<group>
的主题)。- dlqProducerProperties
使用此功能,可以设置特定于DLQ的生产者属性。通过kafka生产者属性可用的所有属性都可以通过此属性设置。
默认:默认Kafka生产者属性。
- 标头
指示入站通道适配器填充哪些标准头。允许的值:
none
,id
,timestamp
或both
。如果使用本机反序列化并且第一个组件接收消息需要id
(例如配置为使用JDBC消息存储的聚合器),则很有用。默认值:
none
- converterBeanName
实现
RecordMessageConverter
的bean的名称。在入站通道适配器中用于替换默认的MessagingMessageConverter
。默认值:
null
- idleEventInterval
事件之间的间隔(以毫秒为单位),指示最近未接收到任何消息。使用
ApplicationListener<ListenerContainerIdleEvent>
接收这些事件。有关用法示例,请参见“示例:暂停和恢复使用者”一节。默认值:
30000
- destinationIsPattern
如果为true,则将目的地视为正则表达式
Pattern
,用于由代理匹配主题名称。设置为true时,不设置主题,并且不允许enableDlq
,因为绑定者在设置阶段不知道主题名称。请注意,检测与模式匹配的新主题所花费的时间由消费者属性metadata.max.age.ms
控制,该属性(在撰写本文时)默认为300,000ms(5分钟)。可以使用上面的configuration
属性进行配置。默认值:
false
更多建议: