消費者組

雖然釋出-訂閱模型使得透過共享主題連線應用程式變得容易,但透過建立給定應用程式的多個例項來實現擴充套件同樣重要。在這種情況下,應用程式的不同例項被置於競爭性消費者關係中,其中只有一個例項需要處理給定訊息。

Spring Cloud Stream 透過消費者組(consumer group)的概念來模擬此行為。(Spring Cloud Stream 消費者組與 Kafka 消費者組類似並受其啟發。)每個消費者繫結可以使用 spring.cloud.stream.bindings.<bindingName>.group 屬性來指定一個組名。對於下圖所示的消費者,此屬性將設定為 spring.cloud.stream.bindings.<bindingName>.group=hdfsWritespring.cloud.stream.bindings.<bindingName>.group=average

SCSt groups
圖 1. Spring Cloud Stream 消費者組

所有訂閱給定目標(destination)的組都會接收到已釋出資料的一個副本,但每個組中只有一個成員會從該目標接收到給定訊息。預設情況下,未指定組時,Spring Cloud Stream 會將應用程式分配到一個匿名且獨立的單成員消費者組,該組與所有其他消費者組處於釋出-訂閱關係中。