Spring Cloud Stream Fishtown.M2 /2.1.0.M2 版本發布公告

工程 | Oleg Zhurakousky | 2018 年 8 月 28 日 | ...

我們很高興宣布 Spring Cloud Stream Fishtown 版本系列的第二個里程碑版本 - Fishtown.M2/2.1.0.M2。

Spring Cloud Stream Fishtown 2.1.0.M2 可在 Spring Milestone 儲存庫中使用。 版本說明 包含與 Spring Boot、Spring Cloud、Spring AMQP 和 Spring for Apache Kafka 的版本相容性相關的資訊。

以下章節提供了此版本中包含的功能和改進的簡要摘要。

值得注意的依賴套件升級

  • Spring Boot 2.1.0.M2(現在完全相容於 Spring Initializr
  • Reactor Californium M2

Spring Cloud Function 支援

此版本的主要主題是引入一種新的程式設計模型,該模型使用 Spring Cloud Function 作為定義串流處理常式來源的替代方案,現在可以將其表示為 java.util.function.[Supplier/Function/Consumer] 類型的 bean

若要指定要綁定到繫結公開的外部目的地之功能 bean,您必須提供 spring.cloud.stream.function.definition 屬性。

以下是將訊息處理常式公開為 java.util.function.Function 的 Processor 應用程式範例

@SpringBootApplication
@EnableBinding(Processor.class)
public class MyFunctionBootApp {

	public static void main(String[] args) {
		SpringApplication.run(MyFunctionBootApp.class, 
                  "--spring.cloud.stream.function.definition=toUpperCase");
	}

	@Bean
	public Function<String, String> toUpperCase() {
		return s -> s.toUpperCase();
	}
}

在上述範例中,我們僅定義一個名為 *toUpperCase* 的 java.util.function.Function 類型 bean,並將其識別為要用作訊息處理常式的 bean,其*輸入*和*輸出*將繫結到 Processor 繫結公開的外部目的地。

函數組合

使用此程式設計模型,您還可以從函數組合中受益,您可以在其中從一組簡單的函數動態組合複雜的處理常式。 例如,將以下函數 bean 新增到上述定義的應用程式

@Bean
public Function<String, String> wrapInQuotes() {
	return s -> "\"" + s + "\"";
}

並修改 spring.cloud.stream.function.definition 屬性以反映您打算從 *toUpperCase* 和 *wrapInQuotes* 組合新函數。 為此,Spring Cloud Function 允許您使用 |(管道)符號。 因此,為了完成我們的範例,我們的屬性現在將如下所示

--spring.cloud.stream.function.definition=toUpperCase|wrapInQuotes

其他值得注意的功能、改進和增強功能

核心

  • 圍繞多繫結器情境的改進和增強

Rabbit Binder

Kafka Binder

  • 將 Kafka Client 升級至 2.0

品質改進

作為持續努力改進程式碼品質並評估框架元件的合約正確性的一部分,我們有一個新的 驗收測試專案,用於在 Cloud Foundry 和 Kubernetes 上引導 Spring Cloud Stream 應用程式。 這些測試每天在重新鋪設的環境中執行多次。 我們希望這能為社群和客戶提供一個基礎,以便在目標平台上建構更多的自動化管道。

Kinesis Binder

透過此版本,我們也想重點介紹最近發布的 Kinesis Binder

各種其他增強功能和錯誤修正:Core Rabbit Binder Kafka Binder

注意

如果應用程式是從 Spring Initializr 建立的,它們需要在 spring-cloud BOM 宣告之前在 maven 依賴套件管理中新增此 BOM 片段,否則您最終會得到最新的快照(這可能沒問題,因為它會包含 M2 的所有工作)

<dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-stream-dependencies</artifactId>
           <version>Fishtown.M2</version>
           <type>pom</type>
           <scope>import</scope>
</dependency>

下一步

M3 計劃於 9 月底發布,主要包含新的繫結功能,以及更多圍繞支援 Spring Cloud Function 作為程式設計模型的功能和改進。

與往常一樣,我們歡迎回饋和貢獻,因此請透過 StackoverflowGitHub 或透過 Gitter 與我們聯繫。

取得 Spring 電子報

隨時關注 Spring 電子報

訂閱

取得領先優勢

VMware 提供培訓和認證,以加速您的進度。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

了解更多

即將舉辦的活動

查看 Spring 社群中所有即將舉辦的活動。

檢視全部