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 作為定義 stream handlerssources 的替代方案,它們現在可以表示為型別為 java.util.function.[Supplier/Function/Consumer] 的 bean

要指定將哪個函式式 bean 繫結到繫結暴露的外部目標,必須提供 spring.cloud.stream.function.definition 屬性。

這是一個 Processor 應用程式將訊息處理器暴露為 java.util.function.Function 的示例

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

在上面,我們只是簡單地定義了一個型別為 java.util.function.Function 的 bean,命名為 toUpperCase,並將其標識為用作訊息處理器的 bean,其 inputoutput 將繫結到 Processor 繫結暴露的外部目標。

函式組合

使用這種程式設計模型,您還可以受益於 函式組合,您可以從一組簡單函式動態組合複雜的處理器。例如,將以下函式 bean 新增到上面定義的應用程式中

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

並修改 spring.cloud.stream.function.definition 屬性,以反映您打算從 toUpperCasewrapInQuotes 組合一個新的函式。為此,Spring Cloud Function 允許您使用 | (管道) 符號。因此,為完成我們的示例,我們的屬性現在看起來像這樣

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

其他值得注意的特性、改進和增強

核心

  • 多繫結器場景的改進和增強

Rabbit 繫結器

Kafka 繫結器

  • 將 Kafka Client 升級到 2.0

質量改進

作為持續改進程式碼質量並評估框架元件合同正確性的努力的一部分,我們有一個新的 驗收測試專案 (Acceptance Test project),用於在 Cloud Foundry 和 Kubernetes 上引導 Spring Cloud Stream 應用程式。這些測試每天在全新環境上執行多次。我們希望這能為社群和客戶在目標平臺上構建更多自動化流水線提供基礎。

Kinesis 繫結器

在此版本中,我們還想重點介紹最近釋出的 Kinesis 繫結器

其他各種增強和錯誤修復:核心 Rabbit 繫結器 Kafka 繫結器

注意

如果應用程式是從 Spring Initializr 建立的,它們需要在 maven 依賴管理中,在 spring-cloud BOM 宣告之前新增此 BOM 片段,否則您將使用最新的 snapshot 版本(這可能沒問題,因為它會包含 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 作為程式設計模型的特性和改進。

一如既往,我們歡迎反饋和貢獻,請透過 StackoverflowGitHubGitter 聯絡我們。

獲取 Spring 新聞通訊

訂閱 Spring 新聞通訊,保持聯絡

訂閱

先行一步

VMware 提供培訓和認證,助力您的進步。

瞭解更多

獲取支援

Tanzu Spring 透過單一訂閱提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視全部