我打算有两个java应用程序,每个都运行在AWS Ec2上的单独实例上,假设在instance1上使用Parser应用程序,在实例2上使用Indexer应用程序。当Parser完成解析文档时,我想发送一堆文档到indexer实例,因此它可以进行索引。如何实现从app1到app2的通知?我最初的想法是套接字。这样做有更好的想法吗?
答案 0 :(得分:2)
直接过程沟通是一种方式。但是,管理和扩展可能更难。
您还可以使用SQS或其他消息队列为其他实例排队工作。通常使用该选项,您可能希望将有效负载存储在共享位置(如S3),因为消息通常具有大小限制。
使用消息队列可以添加额外的工作人员,假设您的应用程序允许它。
答案 1 :(得分:0)
另一种方法是使用AWS Simple Workflow(SWF)服务。这需要您将应用程序构建到SWF框架中,并且它有一些学习曲线,但它会负责跨多个实例分派任务并确保每个步骤都执行错误处理和事件日志。
我建议您首先阅读常见问题解答http://aws.amazon.com/swf/faqs/,然后阅读开发人员指南http://docs.aws.amazon.com/amazonswf/latest/awsflowguide/welcome.html
它目前支持java,ruby,.net和php。