[英]Spring batch remote partitioning to multiple application instances
我正在使用 spring 批處理進行遠程分區。我有多個 spring 批處理應用程序實例正在運行。 作為用例的一部分,我需要處理數據庫中存在的所有記錄。 所以我為每個記錄分配實例。所以批處理應用程序的每個實例都可以處理實例特定的記錄。
例如
Records1 -: instance1
Records2 -: instance1
Records3 -: instance2
Records4 -: instance2
.... so on
我知道我們可以使用 Kafka 或 JMS 而不是顯式分區。 在我的用例中,我不想使用任何消息中間件。 因此,在將實例分配給每個記錄之后。 我想調用這兩個實例。 如何調用這兩個實例?
你仍然需要一個消息中間件來實現遠程分區。 這是管理步驟將StepExecutionRequest
發送到工作步驟所必需的。
如果您真的想避免使用消息傳遞中間件,您可以為每個記錄集創建一個作業實例。 根據您的示例,這可以設計如下:
這些作業實例可以在同一 JVM 的不同線程中本地執行,也可以在同一機器上的不同 JVM 中本地執行,或者在集群中的不同機器上遠程執行。 並行度僅取決於集群中可用的資源。 您可以在一台機器上擁有多個 JVM,其中每個 JVM 並行運行多個作業實例。 然后,您可以在不同的機器上復制該設置,並根據您的要求實現高水平的並行性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.