SpringCloud 生产者Properties
这些属性通过org.springframework.cloud.stream.binder.ProducerProperties
公开
以下绑定属性仅可用于输出绑定,并且必须以spring.cloud.stream.bindings.<channelName>.producer.
为前缀(例如,spring.cloud.stream.bindings.input.producer.partitionKeyExpression=payload.id
)。
可以使用前缀spring.cloud.stream.default.producer
(例如,spring.cloud.stream.default.producer.partitionKeyExpression=payload.id
)设置默认值。
- partitionKeyExpression
一个SpEL表达式,用于确定如何对出站数据进行分区。如果已设置或设置了
partitionKeyExtractorClass
,则会对该通道上的出站数据进行分区。partitionCount
必须设置为大于1的值才能生效。与partitionKeyExtractorClass
互斥。请参见“分区支持” 。默认值:null。
- partitionKeyExtractorClass
PartitionKeyExtractorStrategy
实现。如果已设置,或者已设置partitionKeyExpression
,则会对该通道上的出站数据进行分区。partitionCount
必须设置为大于1的值才能生效。与partitionKeyExpression
互斥。请参见“分区支持” 。默认值:
null
。- partitionSelectorClass
PartitionSelectorStrategy
实现。与partitionSelectorExpression
互斥。如果两者均未设置,则将该分区选择为hashCode(key) % partitionCount
,其中key
通过partitionKeyExpression
或partitionKeyExtractorClass
计算。默认值:
null
。- partitionSelectorExpression
用于自定义分区选择的SpEL表达式。与
partitionSelectorClass
互斥。如果两者均未设置,则将分区选择为hashCode(key) % partitionCount
,其中key
通过partitionKeyExpression
或partitionKeyExtractorClass
计算。默认值:
null
。- partitionCount
数据的目标分区数(如果启用了分区)。如果生产者已分区,则必须将其设置为大于1的值。在Kafka上,它被解释为提示。取其较大者,并使用目标主题的分区数。
默认值:
1
。- requiredGroups
- 生产者必须确保将消息传递到的组的逗号分隔列表,即使它们是在创建消息之后开始的(例如,通过在RabbitMQ中预先创建持久队列)。
- headerMode
设置为
none
时,它将禁用在输出中嵌入标头。它仅对本身不支持消息头并且需要消息头嵌入的消息中间件有效。当不支持本机头时,为非Spring Cloud Stream应用程序生成数据时,此选项很有用。设置为headers
时,它使用中间件的本机头机制。设置为embeddedHeaders
时,它将标头嵌入到消息有效负载中。默认值:取决于活页夹的实现。
- useNativeEncoding
设置为
true
时,出站消息将直接由客户端库进行序列化,该库必须进行相应配置(例如,设置适当的Kafka生产者值序列化程序)。使用此配置时,出站消息编组不是基于绑定的contentType
。使用本机编码时,使用方负责使用适当的解码器(例如,Kafka使用方值反序列化器)对入站消息进行反序列化。此外,当使用本机编码和解码时,headerMode=embeddedHeaders
属性将被忽略,并且标头不会嵌入消息中。请参阅消费者属性useNativeDecoding
。默认值:
false
。- errorChannelEnabled
设置为
true
时,如果活页夹支持异步发送结果,则发送失败将发送到目标的错误通道。参见“ ??? ”以获取更多信息。默认值:
false
。
更多建议: