2017-07-19 43 views
1

在Spring雲流中,該屬性的用法到底是什麼spring.cloud.stream.instanceCount春雲流instanceCount的用途是什麼?

我的意思是如果這個值因爲某個時候一個或多個微服務實例關閉而出現錯誤,那麼這會如何影響我們基礎架構的行爲?

回答

2

instanceCount用於跨不同消費者分區數據。有一個或多個服務不應該真的影響你的生產者,這是經紀人的工作。我們假設你有一個將數據發送到3個分區的源,所以你將有instanceCount = 3,並且每個實例都有它自己的分區,這個分區是通過instanceIndex分配的。

每個實例都會消耗數據,但如果實例2崩潰,則0,1仍然會從分區讀取數據,並且源仍然會照常發送數據。

假設您的平臺具有某種可恢復性,您的崩潰實例應該會恢復正常並恢復其操作。

我們仍然不支持在運行時動態分配分區,我們正在調查這是未來版本的故事。

+0

請注意,這僅適用於不自然支持分區的綁定程序;通過Kafka,分區將在剩下的實例中重新平衡。例如,對於RabbitMQ,每個分區都有一個隊列,因此消息將在死實例的隊列中累積,直到重新啓動。使用任何活頁夾計算分區編號時,實例數將用作模數。 –