我們正在設計一個java中的Orchestrator系統,它將託管一個Web服務,並根據請求調用一個用XML編寫的流程,這些流程只是一個接一個執行的步驟, XML告訴用戶流程是什麼,他也可以通過更改XML來改變流程。他可以添加一項新服務並將其添加到XML中。但是在設計時,我現在感到困惑於類似的東西。使用破壞程序和執行程序在Java中設計Orchestrator
我應該做一個服務,一個阻塞隊列,可運行,並通過將其安排到執行,所以當新的請求到達時我會推入阻塞隊列請求保持它活着的時候,該服務將處理它。並創建一個郵箱,它將在不同的服務之間傳遞消息傳遞任務。
而不是使服務可運行我應該使用春天國際奧委會,將使類單身,因此只有一個實例將在那裏,我會直接發送一個請求到服務方法,因此將不會有麻煩,我必須做因爲沒有線程,也不需要實現任何郵箱。
我讀到了事件驅動系統如何像nodejs和ngnix一樣快,所以我正在考慮使用disuptor框架將所有傳入的請求推送到環緩衝區,然後編寫一個處理程序將事件發送到協調器,開始處理請求,併發送一個回調與請求,以便當編排器完成後,它將使用回調將回復發回給調用者。但由於請求的類型不同,所以我無法利用干擾對象分配。
系統需要提供最大吞吐量,低時延,系統將增加新的服務/流向XML在未來,所以應該採用新的流程沒有擊中性能。我被允許只使用Java 7,沒有Scala,所以我是有限的。
這真的很有幫助,有沒有其他方法可以幫助我做一些研究? –