2016-02-19 119 views
4

我們正在評估Spring Batch框架以取代我們組織中的本土批量框架,並且我們應該能夠在Pivotal Cloud Foundry(PCF)中部署批處理。在這一點上,你可以讓我們知道您對以下問題的看法:Spring批處理和Pivotal Cloud Foundry

  • 讓我們說,如果我們使用遠程分區策略來處理大量的記錄,可以在雲中的批處理作業自動縮放,從屬節點基於關於批量作業的處理量?或者我們必須調整適當數量的從節點,並在批處理作業啓動之前保持它們到位?
  • 上述場景中的「網格大小」參數配置如何?

回答

7

您在這裏有幾個問題。但是,在進入它們之前,請讓我花一些時間瀏覽PCF上批處理的位置,然後回答您的問題。

電流CF

的狀態作爲PCF 1.6,聖地亞哥(CF內的動態運行時)提供了新的原語被稱爲任務。傳統上,運行在CF上的所有應用程序都應該是長時間運行的進程。因此,爲了在CF上運行批處理作業,您需要將其打包爲長時間運行的進程(通常是Web應用程序),然後部署該進程。如果你想使用遠程分區,你需要根據你的需要來部署和擴展slave,但這些都是CF的外部。通過任務,迭戈現在支持短命的流程......也就是當完成時不會重新啓動的流程。這意味着你可以將一個批處理作業作爲Spring Boot的一個jar包運行,並且一旦完成,CF就不會嘗試重新啓動它(這是件好事)。 1.6的問題在於暴露任務的API不可用,所以它只是一個內部構造。

隨着PCF 1.7,一個新的API正在發佈,以暴露任務的一般用途。作爲v3 API的一部分,您可以將自己的應用程序部署爲任務。這允許您啓動一個批處理作業作爲知道它將執行的任務,然後由PCF清理。考慮到這一點......

批處理作業是否可以根據批處理作業的處理量自動縮放雲中的從節點?

當使用Spring Batch的分區功能時,有兩個關鍵組件。 PartitionerPartitionHandlerPartitioner負責理解數據以及如何分割數據。 PartitionHandler負責理解將分區分配給從設備的結構。

對於Spring Cloud Data Flow,我們計劃創建一個PartitionHandler實現,該實現允許用戶在CF上執行從分區作爲任務。從本質上講,我們期望的是PartitionHandler將啓動奴隸作爲任務,一旦他們完成,他們將被清理。

該方法允許根據分區數量(可配置爲最大值)動態啓動從站的數量。

我們計劃爲Spring雲數據流執行此項工作,但PartitionHandler應該也適用於該工作流以外的用戶。

上述場景中的「網格大小」參數配置如何?

網格大小參數實際上是由Partitioner而不是PartitionHandler使用的,其目的是提示可能有多少員工。在這種情況下,可以使用它來配置要創建的分區數量,但這實際上取決於實現的數量。

結論

這是如何在CF一批工作流程看起來就像一個描述。重要的是要注意,CF 1.7並沒有寫出這個答案。它計劃在2016年第一季度結束,屆時這一功能將在不久之後發佈。