SpringCloud 多個(gè)輸入綁定作為接收器

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();
}

在上面的示例中,應(yīng)用程序被編寫(xiě)為接收器,即沒(méi)有輸出綁定,并且應(yīng)用程序必須決定有關(guān)下游處理的內(nèi)容。當(dāng)您以這種方式編寫(xiě)應(yīng)用程序時(shí),您可能希望向下游發(fā)送信息或?qū)⑵浯鎯?chǔ)在狀態(tài)存儲(chǔ)中(有關(guān)可查詢狀態(tài)存儲(chǔ),請(qǐng)參見(jiàn)下文)。

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

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

上面的示例顯示了將KTable用作輸入綁定。綁定器還支持GlobalKTable的輸入綁定。當(dāng)您必須確保應(yīng)用程序的所有實(shí)例都可以訪問(wèn)主題中的數(shù)據(jù)更新時(shí),GlobalKTable綁定非常有用。KTable和GlobalKTable綁定僅在輸入上可用。Binder支持KStream的輸入和輸出綁定。

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)