W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
您可以通過設(shè)置其partitionKeyExpression
或partitionKeyExtractorName
屬性及其partitionCount
屬性中的一個或僅一個,來配置輸出綁定以發(fā)送分區(qū)數(shù)據(jù)。
例如,以下是有效的典型配置:
spring.cloud.stream.bindings.output.producer.partitionKeyExpression=payload.id spring.cloud.stream.bindings.output.producer.partitionCount=5
基于該示例配置,通過使用以下邏輯將數(shù)據(jù)發(fā)送到目標分區(qū)。
根據(jù)partitionKeyExpression
為發(fā)送到分區(qū)輸出通道的每條消息計算分區(qū)鍵的值。partitionKeyExpression
是一個SpEL表達式,該表達式根據(jù)出站消息進行評估以提取分區(qū)鍵。
如果SpEL表達式不足以滿足您的需要,則可以通過提供org.springframework.cloud.stream.binder.PartitionKeyExtractorStrategy
的實現(xiàn)并將其配置為bean(通過使用@Bean
注釋)來計算分區(qū)鍵值。 。如果在應用程序上下文中有多個org.springframework.cloud.stream.binder.PartitionKeyExtractorStrategy
類型的bean,則可以通過使用partitionKeyExtractorName
屬性指定其名稱來進一步過濾它,如以下示例所示:
--spring.cloud.stream.bindings.output.producer.partitionKeyExtractorName=customPartitionKeyExtractor --spring.cloud.stream.bindings.output.producer.partitionCount=5 . . . @Bean public CustomPartitionKeyExtractorClass customPartitionKeyExtractor() { return new CustomPartitionKeyExtractorClass(); }
在Spring Cloud Stream的早期版本中,您可以通過設(shè)置
spring.cloud.stream.bindings.output.producer.partitionKeyExtractorClass
屬性來指定org.springframework.cloud.stream.binder.PartitionKeyExtractorStrategy
的實現(xiàn)。從2.0版開始,不推薦使用此屬性,并且在將來的版本中將不再支持該屬性。
一旦計算出消息密鑰,分區(qū)選擇過程就會將目標分區(qū)確定為0
與partitionCount - 1
之間的值。適用于大多數(shù)情況的默認計算基于以下公式:key.hashCode() % partitionCount
。這可以在綁定上進行自定義,方法是將SpEL表達式設(shè)置為針對'key'進行評估(通過partitionSelectorExpression
屬性),也可以將org.springframework.cloud.stream.binder.PartitionSelectorStrategy
的實現(xiàn)配置為bean (通過使用@ Bean批注)。與PartitionKeyExtractorStrategy
類似,當應用程序上下文中有多個這種類型的bean可用時,您可以使用spring.cloud.stream.bindings.output.producer.partitionSelectorName
屬性進一步過濾它,如以下示例所示:
--spring.cloud.stream.bindings.output.producer.partitionSelectorName=customPartitionSelector . . . @Bean public CustomPartitionSelectorClass customPartitionSelector() { return new CustomPartitionSelectorClass(); }
在Spring Cloud Stream的早期版本中,您可以通過設(shè)置spring.cloud.stream.bindings.output.producer.partitionSelectorClass
屬性來指定org.springframework.cloud.stream.binder.PartitionSelectorStrategy
的實現(xiàn)。從2.0版開始,不推薦使用此屬性,并且在將來的版本中將不再支持該屬性。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: