2017-02-05 33 views
2

對於具有多個分區的主題 - )彈簧雲流卡夫卡消費模式

1是否單個SpringBoot實例使用多個線程來處理(與StreamListener註解的方法)的每個消息從每個分區?

2)是否可以爲每個分區配置多個線程,還是我必須手動從監聽器線程切換到工作區池?

回答

2

....consumer.concurrency控制線程數(默認值爲1)。

分區分佈在線程中。如果你有20個分區和4個線程;他們會得到5個分區。

您需要至少具有與所有實例中聚合併發數一樣多的分區。 (如果您有2個應用程序實例和5個線程,則至少需要10個分區)。

您不應該將消息從單個分區分發到多個線程;一旦切換到新線程並且可能導致信息丟失,偏移將立即提交。

對於擁有更多分區而言,您應該總是會犯錯,而不是需要併發。

+2

要添加到Gary的評論,這是一個很好的文章,應該引導您完成尺寸調整過程.http://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in-一個-卡夫卡簇/ –