2017-09-21 84 views
0

我熟悉amazon SWF的概念。我可以看到許多使用不同語言的SDK使用SWF服務。另外,亞馬遜Flow Framework是一組實現分佈式應用程序的庫。目前,這個Flow Framework可以在Java和Ruby中使用。那麼我們如何編寫使用SWF的分佈式應用程序,如python,php等其他語言。這是否意味着amazon只提供Java和Ruby框架,其餘的語言有其他供應商的庫?請解釋 。AWS SWF vs Flow Framework

回答

0

你說得對,AWS目前只提供Ruby和Java的高級框架(「Flow」框架)。在大多數(所有?)官方SDK中都可以訪問SWF的低級訪問權限:Python的boto2/3,go-sdk等。

使用SWF時,您會發現自己主要實現兩種類型的程序: 「活動工作者」和「決策者」(http://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-actors.html)。

使用Flow框架並不是強制性的,但它通過提供描述同步點的高級抽象,定義哪些任務可以並行運行,重試等來幫助實現決策者。還有非官方庫(I親自爲我的公司維護一個,「simpleflow」)。

如果你想爲決策者使用其他語言,我建議你先嚐試使用現有的框架,然後看看你是否想自己實現這一點(從我的經驗來看,這不是微不足道的)。

如果您想用其他語言實現活動,我建議您開始使用Flow框架端到端,然後您可以1/fork並使用您最喜歡的語言作爲Ruby/Java Flow工作程序的子進程,或者2 /模仿Flow框架的序列化邏輯,並直接使用低級API實現工作人員(這很簡單:輪詢一個活動,做功,然後用SWF響應結果)。