SpringCloud Kafka消费者Properties

2023-11-28 16:24 更新

以下属性仅适用于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.instanceCountspring.cloud.stream.instanceIndex的固定分区集合。这要求在每个启动的实例上同时设置spring.cloud.stream.instanceCountspring.cloud.stream.instanceIndex属性。在这种情况下,spring.cloud.stream.instanceCount属性的值通常必须大于1。

默认值:true

ackEachRecord

autoCommitOffsettrue时,此设置指示在处理每条记录后是否提交偏移量。默认情况下,在处理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

新组的起始偏移量。允许的值:earliestlatest如果为消费者“绑定”显式设置了消费者组(通过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-topicx-exception-messagex-exception-stacktracebyte[]destinationIsPatterntrue时不允许使用。

默认值:false

组态

使用包含通用Kafka使用者属性的键/值对进行映射。

默认值:空地图。

dlqName

接收错误消息的DLQ主题的名称。

默认值:null(如果未指定,则导致错误的消息将转发到名为error.<destination>.<group>的主题)。

dlqProducerProperties

使用此功能,可以设置特定于DLQ的生产者属性。通过kafka生产者属性可用的所有属性都可以通过此属性设置。

默认:默认Kafka生产者属性。

标头

指示入站通道适配器填充哪些标准头。允许的值:noneidtimestampboth如果使用本机反序列化并且第一个组件接收消息需要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

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号