当前位置:  开发笔记 > 后端 > 正文

亚马逊Elastic Beanstalk工作者层

如何解决《亚马逊ElasticBeanstalk工作者层》经验,为你挑选了1个好方法。

我需要做一些异步作业处理给定一个Web请求,我将定期轮询直到它完成.我有整个堆栈并在本地运行,但我无法从概念上理解如何将其转移到EBS工作层.我在本地使用Django和Celery以及RabbitMQ,并且成功地将RabbitMQ替换为Amazon SQS.但是,当我尝试创建一个工作层时,该工作层将使用与webapp相同的RDS数据库但不成功.我陷入了可以对消息进行排队但无法从队列中读取它们的问题.我需要使用这些消息对数据库执行一些昂贵的操作,并为使用者准备结果.是否有一些我缺少的建筑作品?我如何以及在哪里获得芹菜守护程序来处理SQS消息?



1> Sébastien St..:

从Elastic Beanstalk文档:

启动AWS Elastic Beanstalk环境时,您可以选择环境层,平台和环境类型.您选择的环境层确定AWS Elastic Beanstalk是否配置资源以支持处理HTTP(S)请求的Web应用程序或处理后台处理任务的Web应用程序.

AWS Elastic Beanstalk在Auto Scaling组中的每个Amazon EC2实例上安装一个守护程序,以处理工作线程环境层中的Amazon SQS消息.守护程序从Amazon SQS队列中提取数据,将其插入HTTP POST请求的消息正文中,然后将其发送到本地主机上的用户可配置的URL路径.默认情况下,HTTP POST请求中的消息正文的内容类型是application/json.

从开发人员的角度来看,在工作层上运行的应用程序只是一个普通的Web服务.它将接收来自在实例上为您配置的AWS Elastic Beanstalk守护程序的调用.

请求将发送到您配置的HTTP Path值.这样做的方式是在守护程序发起请求的工作线程环境层中的Web应用程序中显示.通过这种方式,守护程序与Web服务器环境层中的负载均衡器起着类似的作用.

在处理队列中的消息之后,工作线程环境层通过本地环回将消息转发到您指定的URL处的Web应用程序.只能从本地主机访问队列URL.由于您只能从同一EC2实例访问队列URL,因此无需验证即可验证传递给URL的邮件.

工作线程环境中的Web应用程序应仅侦听本地主机.当工作线程环境层中的Web应用程序返回200 OK响应以确认它已收到并成功处理了请求时,守护程序将向SQS队列发送DeleteMessage调用,以便从队列中删除该消息.(SQS自动删除队列中的消息的时间超过配置的RetentionPeriod.)如果应用程序返回200 OK以外的任何响应,或者在配置的InactivityTimeout期间没有响应,则SQS再次使消息在队列中可见并可用于另一次处理.


有用的信息,但从亚马逊的文档中逐字逐句:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html
同意,但最好引用不属于你自己的作品.
正确!如果正确答案在文档中,我们为什么要重写所有内容?
你是对的,我应该链接原始文档:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html
推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有