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。

要指定要繫結到 bindings 公開的外部目標(destination)的函式 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();
	}
}

在上面的示例中,我們簡單地定義了一個名為toUpperCasejava.util.function.Function型別的 bean,並將其標識為用作訊息處理程式的 bean,其inputoutput將繫結到 Processor binding 公開的外部目標。

函式組合

使用這種程式設計模型,您還可以受益於函式組合,您可以從一組簡單的函式動態地組合複雜的處理程式。例如,將以下函式 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 Binder

Kafka Binder

  • 將 Kafka 客戶端升級到 2.0

質量改進

作為持續改進程式碼質量和評估框架元件合同正確性工作的組成部分,我們有一個新的 Acceptance Test 專案,用於在 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 計劃於九月底釋出,主要包含新的繫結功能以及更多圍繞支援 Spring Cloud Function 作為程式設計模型的功能和改進。

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

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

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

檢視所有