2017-10-04 107 views
0

用於在單獨的表和數據庫中維護大量數據我編寫了多個具有不同職責的控制檯應用程序。例如,一個應用程序可以創建一個數據庫,下一個可以處理新數據,最後一個過濾器可以處理舊數據和新數據。等服務結構流模式

現在服務順序(手工)運行。 根據這樣的應用程序的結果,您可能需要運行前一個。

爲了實現這個流程的自動化,我考慮使用服務結構,因爲我發現服務可能會相互通信。
是一種模式,其中有一個「主」服務控制一個服務的輸入/輸出並將它發送到正確的服務?或者我瘋狂地過度/不重視使用服務結構?

+0

你在說[API Gateway](http://microservices.io/patterns/apigateway.html)嗎? – Marusyk

回答

0

我想說Service Fabric是一個非常靈活和強大的野獸,以迎合許多不同的需求,你應該一定能夠構建所需的架構。

要創建和控制流程,可以考慮使用SF Actor。你可以很容易地建立一個流水線或某種鏈,每個Actor只知道如何完成它的任務,下一個Actor要求成功,以及如果某件事失敗,則投訴誰。爲了避免讓Actor們執行長時間運行和密集的I/O工作或某些事情,您可以利用提醒。例如,當輸入的新部分到達時,調用其中實現了控制檯應用程序邏輯的另一SF服務(實際工作人員)來啓動作業,將任務標識或任何其他屬性保存在參與者狀態中以標識「工作人員」並設置提醒以檢查正在進行的任務的狀態。 SF爲其服務提供了許多不同的方式來相互溝通,因此您可以眨眼間建立演員與「工作人員」之間的互動。

如果你的控制檯應用程序有一個巨大的不平凡的邏輯,並且你不想在你的十字軍東征開始時花太多時間遷移代碼,那麼你也可以在SF中使用GuestExecutables。

這只是第一個想法和一些非常通用的設計。我的觀點是,當涉及到「做」服務時,SF是一個非常好的選擇,因爲各種各樣的好的和強大的選項可以處理許多不同的情況。

P.S.

結帳Service Fabric Reliable Services Pipeline design。討論涉及到類似的主題,並闡明瞭您可能會發現的細節。