Beanstalkd队列与AWS Elastic Beanstalk

5

我想将正在运行在Docker容器内的Web应用程序部署到弹性Beanstalk。

当将您的应用程序部署到弹性Beanstalk时,您有两种环境选项可以选择:

  1. Web服务器环境
  2. Worker环境

逻辑上,我的Web应用程序使用第一种环境类型,但我还需要使用作业队列来处理长时间运行的进程,这可能会在第二种类型的环境中运行。然而,我不想使用亚马逊SQS,因为我想切换到其他主机时会遇到供应商锁定问题。我想使用Beanstalkd,但是我无法想出一个好的解决方案来设置它。

我喜欢Rohit Banga给出的这个答案。不过,这将迫使我使用SQS,对吗?

我认为在我的代码仓库中拥有一个存储库非常重要。工作人员将使用与Web应用程序相同的代码。我认为这样只需一个存储库就更容易维护。

我想我会设置一个EC2实例,该实例将运行Beanstalkd服务器。

1个回答

3
如果您打算运行自己的队列并且不需要(或不想)使用SQS,则只需使用Web服务器即可。
Web服务器和Worker本质上是相同的。区别在于,Worker层没有负载均衡器。Worker层还要完成设置带有将队列数据定向到您的“Web监听器”的守护程序的SQS队列的所有工作。
由于您没有使用sqs,因此可以使用Web服务器。只需知道,在扩展环境时,您必须确保您的队列正常工作。(您不想从队列中读取相同的项目两次)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接