SpringCloud 配置用于分區(qū)的輸入綁定

2023-11-28 15:51 更新

通過(guò)設(shè)置應(yīng)用程序本身的partitioned屬性以及應(yīng)用程序本身的instanceIndexinstanceCount屬性,將輸入綁定(通道名稱為input)配置為接收分區(qū)數(shù)據(jù)。下面的例子:

spring.cloud.stream.bindings.input.consumer.partitioned=true
spring.cloud.stream.instanceIndex=3
spring.cloud.stream.instanceCount=5

instanceCount值表示應(yīng)在其之間分區(qū)數(shù)據(jù)的應(yīng)用程序?qū)嵗目倲?shù)。instanceIndex在多個(gè)實(shí)例中必須是唯一的值,其值應(yīng)介于0instanceCount - 1之間。實(shí)例索引可幫助每個(gè)應(yīng)用程序?qū)嵗R(shí)別從中接收數(shù)據(jù)的唯一分區(qū)。活頁(yè)夾要求使用不支持本地分區(qū)的技術(shù)。例如,對(duì)于RabbitMQ,每個(gè)分區(qū)都有一個(gè)隊(duì)列,該隊(duì)列名稱包含實(shí)例索引。對(duì)于Kafka,如果autoRebalanceEnabledtrue(默認(rèn)值),則Kafka負(fù)責(zé)在實(shí)例之間分配分區(qū),并且不需要這些屬性。如果autoRebalanceEnabled設(shè)置為false,則綁定器將使用instanceCountinstanceIndex來(lái)確定實(shí)例所預(yù)訂的分區(qū)(您必須擁有與實(shí)例數(shù)量一樣多的分區(qū)) 。活頁(yè)夾分配分區(qū)而不是Kafka。如果您希望特定分區(qū)的消息始終發(fā)送到同一實(shí)例,這可能很有用。當(dāng)活頁(yè)夾配置需要它們時(shí),重要的是正確設(shè)置兩個(gè)值,以確保使用所有數(shù)據(jù),并且應(yīng)用程序?qū)嵗邮栈コ獾臄?shù)據(jù)集。

盡管在單獨(dú)情況下使用多個(gè)實(shí)例進(jìn)行分區(qū)數(shù)據(jù)處理可能會(huì)很復(fù)雜,但Spring Cloud Dataflow可以通過(guò)正確填充輸入和輸出值并讓您依賴運(yùn)行時(shí)來(lái)顯著簡(jiǎn)化流程基礎(chǔ)架構(gòu),以提供有關(guān)實(shí)例索引和實(shí)例計(jì)數(shù)的信息。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)