2015-02-10 107 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工作。

相关问题