2015-02-10 50 views
0

我計劃擁有兩個Java應用程序,每個在AWS Ec2上的獨立實例上運行,假設實例1上的解析器應用程序和實例2上的索引器應用程序。當解析器完成解析文檔時,我想發送一系列文檔到索引器實例,所以它可以做它的索引。我怎樣才能實現從app1到app2的通知?我最初的想法是套接字。有沒有更好的想法做到這一點?兩個java應用程序如何在EC2上的兩個實例上通信?

回答

2

直接進程通信是一種方式。這可能很難管理和擴展這個。

您也可以使用SQS或其他消息隊列來排隊其他實例的工作。通常使用該選項時,您希望將有效負載存儲在共享位置(如S3),因爲消息通常具有大小限制。

使用消息隊列允許您添加額外的工作人員,假定您的應用程序允許它。

0

另一種方法是使用AWS Simple Workflow(SWF)服務。這需要您將應用程序組織到SWF框架中,並且它有一點學習曲線,但它會負責在多個實例之間調度您的任務,並確保每個步驟都通過錯誤處理和事件日誌來執行。

我建議你先閱讀常見問題http://aws.amazon.com/swf/faqs/然後通過開發指南http://docs.aws.amazon.com/amazonswf/latest/awsflowguide/welcome.html

目前,它支持Java,紅寶石,.NET和PHP工作。

相關問題