Binder 抽象化

Spring Cloud Stream 為 KafkaRabbit MQ 提供 Binder 實作。此框架還包含一個測試 Binder,用於整合測試您的應用程式作為 spring-cloud-stream 應用程式。有關更多詳細資訊,請參閱 [測試] 章節。

Binder 抽象化也是框架的擴充點之一,這表示您可以在 Spring Cloud Stream 之上實作自己的 Binder。在 How to create a Spring Cloud Stream Binder from scratch 文章中,一位社群成員詳細記錄了實作自訂 Binder 所需的一系列步驟,並提供範例。這些步驟也在 實作自訂 Binder 章節中重點說明。

Spring Cloud Stream 使用 Spring Boot 進行組態,而 Binder 抽象化使 Spring Cloud Stream 應用程式可以彈性地連接到中介軟體。例如,部署人員可以在執行時期動態選擇外部目的地(例如 Kafka 主題或 RabbitMQ 交換器)與訊息處理常式的輸入和輸出(例如函數的輸入參數及其傳回引數)之間的映射。此類組態可以透過外部組態屬性提供,並以 Spring Boot 支援的任何形式提供(包括應用程式引數、環境變數以及 application.ymlapplication.properties 檔案)。在 Spring Cloud Stream 簡介 章節中的 sink 範例中,將 spring.cloud.stream.bindings.input.destination 應用程式屬性設定為 raw-sensor-data 會使其從 raw-sensor-data Kafka 主題或從繫結到 raw-sensor-data RabbitMQ 交換器的佇列讀取。

Spring Cloud Stream 自動偵測並使用在類別路徑上找到的 Binder。您可以將不同類型的中介軟體與相同的程式碼一起使用。若要執行此操作,請在建置時期包含不同的 Binder。對於更複雜的使用案例,您也可以將多個 Binder 與您的應用程式一起封裝,並讓它在執行時期選擇 Binder(甚至是否對不同的繫結使用不同的 Binder)。