SpringCloud 多個輸入綁定作為接收器

2023-11-29 15:23 更新
@EnableBinding(KStreamKTableBinding.class)
.....
.....
@StreamListener
public void process(@Input("inputStream") KStream<String, PlayEvent> playEvents,
                    @Input("inputTable") KTable<Long, Song> songTable) {
                    ....
                    ....
}

interface KStreamKTableBinding {

    @Input("inputStream")
    KStream<?, ?> inputStream();

    @Input("inputTable")
    KTable<?, ?> inputTable();
}

在上面的示例中,應用程序被編寫為接收器,即沒有輸出綁定,并且應用程序必須決定有關下游處理的內容。當您以這種方式編寫應用程序時,您可能希望向下游發(fā)送信息或將其存儲在狀態(tài)存儲中(有關可查詢狀態(tài)存儲,請參見下文)。

對于傳入的KTable,如果要將計算具體化為狀態(tài)存儲,則必須通過以下屬性將其表示。

spring.cloud.stream.kafka.streams.bindings.inputTable.consumer.materializedAs: all-songs

上面的示例顯示了將KTable用作輸入綁定。綁定器還支持GlobalKTable的輸入綁定。當您必須確保應用程序的所有實例都可以訪問主題中的數據更新時,GlobalKTable綁定非常有用。KTable和GlobalKTable綁定僅在輸入上可用。Binder支持KStream的輸入和輸出綁定。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號