Binder 抽象

Spring Cloud Stream 為 KafkaRabbit MQ 提供了 Binder 實現。該框架還包括一個測試 Binder,用於對您的應用進行整合測試(作為 spring-cloud-stream 應用)。更多詳細資訊請參閱 [Testing] 部分。

Binder 抽象也是框架的擴充套件點之一,這意味著您可以在 Spring Cloud Stream 之上實現自己的 Binder。在 如何從零開始建立 Spring Cloud Stream Binder 帖子中,社群成員詳細記錄了實現自定義 Binder 所需的一系列步驟並提供了示例。這些步驟在 實現自定義 Binder 部分中也進行了強調。

Spring Cloud Stream 使用 Spring Boot 進行配置,並且 Binder 抽象使得 Spring Cloud Stream 應用在連線中介軟體方面具有靈活性。例如,部署者可以在執行時動態選擇外部目標(例如 Kafka topic 或 RabbitMQ 交換機)與訊息處理程式輸入和輸出(例如函式的輸入引數及其返回值)之間的對映。這些配置可以透過外部配置屬性提供,並且支援 Spring Boot 支援的任何形式(包括應用引數、環境變數以及 application.ymlapplication.properties 檔案)。在 Spring Cloud Stream 簡介 部分的 sink 示例中,將 spring.cloud.stream.bindings.input.destination 應用屬性設定為 raw-sensor-data 會使其從 raw-sensor-data Kafka topic 或繫結到 raw-sensor-data RabbitMQ 交換機的佇列中讀取資料。

Spring Cloud Stream 會自動檢測並使用 Classpath 中找到的 Binder。您可以使用相同的程式碼與不同型別的中介軟體配合使用。為此,您只需在構建時包含不同的 Binder 即可。對於更復雜的用例,您還可以將多個 Binder 打包到您的應用中,並在執行時選擇要使用的 Binder(甚至為不同的繫結使用不同的 Binder)。